Ler em inglês

Partilhar via


XmlSchema Classe

Definição

Uma representação na memória de um esquema XML, conforme especificado em XML Schema Part 1: Structures (Esquema XML parte 1: estruturas) e XML Schema Part 2: Datatypes (Esquema XML parte 2: tipos de dados) do W3C (World Wide Web Consortium).

C#
public class XmlSchema
C#
public class XmlSchema : System.Xml.Schema.XmlSchemaObject
Herança
XmlSchema
Herança

Exemplos

O exemplo a seguir cria uma definição de esquema.

C#
using System;
using System.Xml;
using System.Xml.Schema;

class XMLSchemaExamples
{
    public static void Main()
    {

        XmlSchema schema = new XmlSchema();

        // <xs:element name="cat" type="xs:string"/>
        XmlSchemaElement elementCat = new XmlSchemaElement();
        schema.Items.Add(elementCat);
        elementCat.Name = "cat";
        elementCat.SchemaTypeName = new XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema");

        // <xs:element name="dog" type="xs:string"/>
        XmlSchemaElement elementDog = new XmlSchemaElement();
        schema.Items.Add(elementDog);
        elementDog.Name = "dog";
        elementDog.SchemaTypeName = new XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema");

        // <xs:element name="redDog" substitutionGroup="dog" />
        XmlSchemaElement elementRedDog = new XmlSchemaElement();
        schema.Items.Add(elementRedDog);
        elementRedDog.Name = "redDog";
        elementRedDog.SubstitutionGroup = new XmlQualifiedName("dog");

        // <xs:element name="brownDog" substitutionGroup ="dog" />
        XmlSchemaElement elementBrownDog = new XmlSchemaElement();
        schema.Items.Add(elementBrownDog);
        elementBrownDog.Name = "brownDog";
        elementBrownDog.SubstitutionGroup = new XmlQualifiedName("dog");

        // <xs:element name="pets">
        XmlSchemaElement elementPets = new XmlSchemaElement();
        schema.Items.Add(elementPets);
        elementPets.Name = "pets";

        // <xs:complexType>
        XmlSchemaComplexType complexType = new XmlSchemaComplexType();
        elementPets.SchemaType = complexType;

        // <xs:choice minOccurs="0" maxOccurs="unbounded">
        XmlSchemaChoice choice = new XmlSchemaChoice();
        complexType.Particle = choice;
        choice.MinOccurs = 0;
        choice.MaxOccursString = "unbounded";

        // <xs:element ref="cat"/>
        XmlSchemaElement catRef = new XmlSchemaElement();
        choice.Items.Add(catRef);
        catRef.RefName = new XmlQualifiedName("cat");

        // <xs:element ref="dog"/>
        XmlSchemaElement dogRef = new XmlSchemaElement();
        choice.Items.Add(dogRef);
        dogRef.RefName = new XmlQualifiedName("dog");

        XmlSchemaSet schemaSet = new XmlSchemaSet();
        schemaSet.ValidationEventHandler += new ValidationEventHandler(ValidationCallbackOne);
        schemaSet.Add(schema);
        schemaSet.Compile();

        XmlSchema compiledSchema = null;

        foreach (XmlSchema schema1 in schemaSet.Schemas())
        {
            compiledSchema = schema1;
        }

        XmlNamespaceManager nsmgr = new XmlNamespaceManager(new NameTable());
        nsmgr.AddNamespace("xs", "http://www.w3.org/2001/XMLSchema");
        compiledSchema.Write(Console.Out, nsmgr);
    }

    public static void ValidationCallbackOne(object sender, ValidationEventArgs args)
    {
        Console.WriteLine(args.Message);
    }
}

O arquivo XML a seguir é gerado para o exemplo de código anterior.

XML

<?xml version="1.0" encoding="IBM437"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="cat" type="xs:string"/>
    <xs:element name="dog" type="xs:string"/>
    <xs:element name="redDog" type="xs:string" substitutionGroup="dog"/>
    <xs:element name="brownDog" type="xs:string" substitutionGroup ="dog" />

    <xs:element name="pets">
      <xs:complexType>
        <xs:choice minOccurs="0" maxOccurs="unbounded">
          <xs:element ref="cat"/>
          <xs:element ref="dog"/>
        </xs:choice>
      </xs:complexType>
    </xs:element>
</xs:schema>

Comentários

Importante

  • Não use esquemas de fontes ou locais desconhecidos ou não confiáveis. Isso comprometerá a segurança do código.
  • Esquemas XML (incluindo esquemas embutidos) são inerentemente vulneráveis a ataques de negação de serviço; não os aceite em cenários não confiáveis.
  • Exceções geradas como resultado do uso da XmlSchema classe, como a XmlSchemaException classe, podem conter informações confidenciais que não devem ser expostas em cenários não confiáveis. Por exemplo, a SourceUri propriedade de um XmlSchemaException URI retorna o caminho do URI para o arquivo de esquema que causou a exceção. A SourceUri propriedade não deve ser exposta em cenários não confiáveis. As exceções devem ser tratadas corretamente para que essas informações confidenciais não sejam expostas em cenários não confiáveis.

Construtores

XmlSchema()

Inicializa uma nova instância da classe XmlSchema.

Campos

InstanceNamespace

O namespace da instância do esquema XML. Este campo é constante.

Namespace

O namespace do esquema XML. Este campo é constante.

Propriedades

AttributeFormDefault

Obtém ou define o formulário dos atributos declarados no namespace de destino do esquema.

AttributeGroups

Obtém o valor de pós-compilação de esquema de todos os grupos de atributos globais no esquema.

Attributes

Obtém o valor de pós-compilação de esquema de todos os atributos no esquema.

BlockDefault

Obtém ou define o atributo blockDefault que define o valor padrão do atributo block no elemento e tipos complexos no targetNamespace do esquema.

ElementFormDefault

Obtém ou define o formulário dos elementos declarados no namespace de destino do esquema.

Elements

Obtém o valor de compilação pós-esquema para todos os elementos no esquema.

FinalDefault

Obtém ou define o atributo finalDefault que define o valor padrão do atributo final nos elementos e tipos complexos no namespace de destino do esquema.

Groups

Obtém o valor de pós-compilação de esquema de todos os grupos no esquema.

Id

Obtém ou define a ID de cadeia de caracteres.

Includes

Obtém a coleção de esquemas incluídos e importados.

IsCompiled

Indica se o esquema foi compilado.

Items

Obtém a coleção de elementos de esquema no esquema e é usado para adicionar novos tipos de elemento no nível de elemento schema.

LineNumber

Obtém ou define o número de linha no arquivo ao qual o elemento schema se refere.

(Herdado de XmlSchemaObject)
LinePosition

Obtém ou define a posição da linha no arquivo ao qual o elemento schema se refere.

(Herdado de XmlSchemaObject)
Namespaces

Obtém ou define o XmlSerializerNamespaces a ser usado com esse objeto de esquema.

(Herdado de XmlSchemaObject)
Notations

Obtém o valor de pós-compilação de esquema para todas as notações no esquema.

Parent

Obtém ou define o pai deste XmlSchemaObject.

(Herdado de XmlSchemaObject)
SchemaTypes

Obtém o valor de pós-compilação de esquema de todos os tipos de esquema no esquema.

SourceUri

Obtém ou define o local de origem para o arquivo que carregou o esquema.

(Herdado de XmlSchemaObject)
TargetNamespace

Obtém ou define o URI (Uniform Resource Identifier) do namespace de destino do esquema.

UnhandledAttributes

Obtém ou define os atributos qualificados que não pertencem ao namespace de destino do esquema.

Version

Obtém ou define a versão do esquema.

Métodos

Compile(ValidationEventHandler)
Obsoleto.
Obsoleto.
Obsoleto.

Compila o SOM (Modelo de Objeto de Esquema XML) em informações de esquema para validação. Usado para verificar a estrutura sintática e semântica do SOM criado de forma programática. A verificação de validação semântica é executada durante a compilação.

Compile(ValidationEventHandler, XmlResolver)
Obsoleto.
Obsoleto.
Obsoleto.

Compila o SOM (Modelo de Objeto de Esquema XML) em informações de esquema para validação. Usado para verificar a estrutura sintática e semântica do SOM criado de forma programática. A verificação de validação semântica é executada durante a compilação.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
Read(Stream, ValidationEventHandler)

Lê um esquema XML do fluxo fornecido.

Read(TextReader, ValidationEventHandler)

Lê um Esquema XML do TextReader fornecido.

Read(XmlReader, ValidationEventHandler)

Lê um Esquema XML do XmlReader fornecido.

ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)
Write(Stream)

Grava o esquema XML no fluxo de dados fornecido.

Write(Stream, XmlNamespaceManager)

Grava o esquema XML no Stream fornecido usando o XmlNamespaceManager especificado.

Write(TextWriter)

Grava o esquema XML no TextWriter fornecido.

Write(TextWriter, XmlNamespaceManager)

Grava o esquema XML no TextWriter fornecido.

Write(XmlWriter)

Grava o esquema XML no XmlWriter fornecido.

Write(XmlWriter, XmlNamespaceManager)

Grava o esquema XML no XmlWriter fornecido.

Aplica-se a

Produto Versões
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

Confira também