Exportar (0) Imprimir
Expandir Tudo

Ler e gravar os esquemas XML

The Schema Object Model (SOM) API Can Be Used to and Gravar XML Schema Schemas (XSD) FROM Files or other Sources and Schemas XML in- Using the classes in the namespace System.Xml.Schema that to the structures defined in the XML Schema Recommendation ().

A classe XmlSchema fornece o Read e Write métodos para ler e gravar os esquemas XML.O método Read retorna um objeto XmlSchema que representa o esquema XML e leva um opcional ValidationEventHandler como um parâmetro para tratar Avisos de validação de esquema e erros encontrados ao ler um esquema XML.

O método WriteStreamTextWriter e XmlWriter objetos grava esquemas XML e pode levar um objeto como um parâmetro opcional XmlNamespaceManager.An XmlNamespaceManager Is Used to identificador Namespaces encountered in an esquema XML.For more information about the XmlNamespaceManager class, see Manage Namespaces Using the XmlNamespaceManager.

O exemplo de código a seguir ilustra Leitura e Gravação esquemas XML de e para um arquivo.The code example takes the example.xsd file, reads it into an XmlSchema object using the staticRead method, and then writes the file to the console and a new new.xsd file.The code example also provides a ValidationEventHandler as a parameter to the staticRead method to handle any schema validation warnings or errors encountered while reading the XML schema.Se o ValidationEventHandler não for especificado (null), há avisos ou erros são relatados.

using System;
using System.IO;
using System.Text;
using System.Xml;
using System.Xml.Schema;

class XmlSchemaReadWriteExample
{
    static void Main()
    {
        try
        {
            XmlTextReader reader = new XmlTextReader("example.xsd");
            XmlSchema myschema = XmlSchema.Read(reader, ValidationCallback);
            myschema.Write(Console.Out);
            FileStream file = new FileStream("new.xsd", FileMode.Create, FileAccess.ReadWrite);
            XmlTextWriter xwriter = new XmlTextWriter(file, new UTF8Encoding());
            xwriter.Formatting = Formatting.Indented;
            myschema.Write(xwriter);
        }
        catch(Exception e)
        {
            Console.WriteLine(e);
        }
    }

    static void ValidationCallback(object sender, ValidationEventArgs args)
    {
        if (args.Severity == XmlSeverityType.Warning)
            Console.Write("WARNING: ");
        else if (args.Severity == XmlSeverityType.Error)
            Console.Write("ERROR: ");

        Console.WriteLine(args.Message);
    }
}


O exemplo usa o example.xsd como entrada.

<?xml version="1.0"?>
<xs:schema id="play" targetNamespace="http://tempuri.org/play.xsd" elementFormDefault="qualified" xmlns="http://tempuri.org/play.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name='myShoeSize'>
        <xs:complexType>
            <xs:simpleContent>
                <xs:extension base='xs:decimal'>
                    <xs:attribute name='sizing' type='xs:string' />
                </xs:extension>
            </xs:simpleContent>
        </xs:complexType>
    </xs:element>
</xs:schema>

Contribuições da comunidade

ADICIONAR
Mostrar:
© 2014 Microsoft