XmlSchema Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Uma representação na memória de um esquema XML, conforme especificado no Esquema XML do W3C (World Wide Web Consortium) Parte 1: Estruturas e Esquema XML Parte 2: Tipos de dados].
public ref class XmlSchema
public ref class XmlSchema : System::Xml::Schema::XmlSchemaObject
public class XmlSchema
public class XmlSchema : System.Xml.Schema.XmlSchemaObject
type XmlSchema = class
type XmlSchema = class
inherit XmlSchemaObject
Public Class XmlSchema
Public Class XmlSchema
Inherits XmlSchemaObject
- Herança
-
XmlSchema
- Herança
Exemplos
O exemplo a seguir cria uma definição de esquema.
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);
}
}
Option Explicit On
Option Strict On
Imports System.Xml
Imports System.Xml.Schema
Class XMLSchemaExamples
Public Shared Sub Main()
Dim schema As New XmlSchema()
' <xs:element name="cat" type="xs:string"/>
Dim elementCat As 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"/>
Dim elementDog As 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" />
Dim elementRedDog As New XmlSchemaElement()
schema.Items.Add(elementRedDog)
elementRedDog.Name = "redDog"
elementRedDog.SubstitutionGroup = New XmlQualifiedName("dog")
' <xs:element name="brownDog" substitutionGroup ="dog" />
Dim elementBrownDog As New XmlSchemaElement()
schema.Items.Add(elementBrownDog)
elementBrownDog.Name = "brownDog"
elementBrownDog.SubstitutionGroup = New XmlQualifiedName("dog")
' <xs:element name="pets">
Dim elementPets As New XmlSchemaElement()
schema.Items.Add(elementPets)
elementPets.Name = "pets"
' <xs:complexType>
Dim complexType As New XmlSchemaComplexType()
elementPets.SchemaType = complexType
' <xs:choice minOccurs="0" maxOccurs="unbounded">
Dim choice As New XmlSchemaChoice()
complexType.Particle = choice
choice.MinOccurs = 0
choice.MaxOccursString = "unbounded"
' <xs:element ref="cat"/>
Dim catRef As New XmlSchemaElement()
choice.Items.Add(catRef)
catRef.RefName = New XmlQualifiedName("cat")
' <xs:element ref="dog"/>
Dim dogRef As New XmlSchemaElement()
choice.Items.Add(dogRef)
dogRef.RefName = New XmlQualifiedName("dog")
Dim schemaSet As New XmlSchemaSet()
AddHandler schemaSet.ValidationEventHandler, AddressOf ValidationCallbackOne
schemaSet.Add(schema)
schemaSet.Compile()
Dim compiledSchema As XmlSchema = Nothing
For Each schema1 As XmlSchema In schemaSet.Schemas()
compiledSchema = schema1
Next
Dim nsmgr As New XmlNamespaceManager(New NameTable())
nsmgr.AddNamespace("xs", "http://www.w3.org/2001/XMLSchema")
compiledSchema.Write(Console.Out, nsmgr)
End Sub
Public Shared Sub ValidationCallbackOne(ByVal sender As Object, ByVal args As ValidationEventArgs)
Console.WriteLine(args.Message)
End Sub
End Class
O arquivo XML a seguir é gerado para o exemplo de código anterior.
<?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 seu código.
- Esquemas XML (incluindo esquemas embutidos) são inerentemente vulneráveis a ataques de negação de serviço; não as 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 retorna o caminho de URI para o arquivo de esquema que causou a exceção. A propriedade SourceUri 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
| Nome | Description |
|---|---|
| XmlSchema() |
Inicializa uma nova instância da classe XmlSchema. |
Campos
| Nome | Description |
|---|---|
| InstanceNamespace |
O namespace da instância do esquema XML. Esse campo é constante. |
| Namespace |
O namespace do esquema XML. Esse campo é constante. |
Propriedades
| Nome | Description |
|---|---|
| AttributeFormDefault |
Obtém ou define o formulário para atributos declarados no namespace de destino do esquema. |
| AttributeGroups |
Obtém o valor pós-compilação de esquema de todos os grupos de atributos globais no esquema. |
| Attributes |
Obtém o valor pós-compilação de esquema para todos os atributos no esquema. |
| BlockDefault |
Obtém ou define o |
| ElementFormDefault |
Obtém ou define o formulário para elementos declarados no namespace de destino do esquema. |
| Elements |
Obtém o valor pós-compilação de esquema para todos os elementos no esquema. |
| FinalDefault |
Obtém ou define o |
| Groups |
Obtém o valor pós-compilação de esquema de todos os grupos no esquema. |
| Id |
Obtém ou define a ID da 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 é usada para adicionar novos tipos de elemento no nível do |
| LineNumber |
Obtém ou define o número de linha no arquivo ao qual o |
| LinePosition |
Obtém ou define a posição da linha no arquivo ao qual o |
| Namespaces |
Obtém ou define o XmlSerializerNamespaces que usar com esse objeto de esquema. (Herdado de XmlSchemaObject) |
| Notations |
Obtém o valor 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 pós-compilação de esquema de todos os tipos de esquema no esquema. |
| SourceUri |
Obtém ou define o local de origem do 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
| Nome | Description |
|---|---|
| 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 sintactica e semântica do SOM criado programaticamente. A verificação de validação semântica é executada durante a compilação. |
| 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 sintactica e semântica do SOM criado programaticamente. 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 Objectatual. (Herdado de Object) |
| Read(Stream, ValidationEventHandler) |
Lê um esquema XML do fluxo fornecido. |
| Read(TextReader, ValidationEventHandler) |
Lê um esquema XML do fornecido TextReader. |
| Read(XmlReader, ValidationEventHandler) |
Lê um esquema XML do fornecido XmlReader. |
| ToString() |
Retorna uma cadeia de caracteres que representa o objeto atual. (Herdado de Object) |
| Write(Stream, XmlNamespaceManager) |
Grava o esquema XML no fornecido Stream usando o XmlNamespaceManager especificado. |
| Write(Stream) |
Grava o esquema XML no fluxo de dados fornecido. |
| Write(TextWriter, XmlNamespaceManager) |
Grava o esquema XML no fornecido TextWriter. |
| Write(TextWriter) |
Grava o esquema XML no fornecido TextWriter. |
| Write(XmlWriter, XmlNamespaceManager) |
Grava o esquema XML no fornecido XmlWriter. |
| Write(XmlWriter) |
Grava o esquema XML no fornecido XmlWriter. |