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 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).
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 <mscorlib.dll>
#using <System.Xml.dll>
using namespace System;
using namespace System::Xml;
using namespace System::Xml::Schema;
class XmlSchemaExamples
{
public:
static void Main()
{
XmlSchema^ schema = gcnew XmlSchema();
// <xs:element name="cat" type="xs:string"/>
XmlSchemaElement^ elementCat = gcnew XmlSchemaElement();
schema->Items->Add(elementCat);
elementCat->Name = "cat";
elementCat->SchemaTypeName = gcnew XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema");
// <xs:element name="dog" type="xs:string"/>
XmlSchemaElement^ elementDog = gcnew XmlSchemaElement();
schema->Items->Add(elementDog);
elementDog->Name = "dog";
elementDog->SchemaTypeName = gcnew XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema");
// <xs:element name="redDog" substitutionGroup="dog" />
XmlSchemaElement^ elementRedDog = gcnew XmlSchemaElement();
schema->Items->Add(elementRedDog);
elementRedDog->Name = "redDog";
elementRedDog->SubstitutionGroup = gcnew XmlQualifiedName("dog");
// <xs:element name="brownDog" substitutionGroup ="dog" />
XmlSchemaElement^ elementBrownDog = gcnew XmlSchemaElement();
schema->Items->Add(elementBrownDog);
elementBrownDog->Name = "brownDog";
elementBrownDog->SubstitutionGroup = gcnew XmlQualifiedName("dog");
// <xs:element name="pets">
XmlSchemaElement^ elementPets = gcnew XmlSchemaElement();
schema->Items->Add(elementPets);
elementPets->Name = "pets";
// <xs:complexType>
XmlSchemaComplexType^ complexType = gcnew XmlSchemaComplexType();
elementPets->SchemaType = complexType;
// <xs:choice minOccurs="0" maxOccurs="unbounded">
XmlSchemaChoice^ choice = gcnew XmlSchemaChoice();
complexType->Particle = choice;
choice->MinOccurs = 0;
choice->MaxOccursString = "unbounded";
// <xs:element ref="cat"/>
XmlSchemaElement^ catRef = gcnew XmlSchemaElement();
choice->Items->Add(catRef);
catRef->RefName = gcnew XmlQualifiedName("cat");
// <xs:element ref="dog"/>
XmlSchemaElement^ dogRef = gcnew XmlSchemaElement();
choice->Items->Add(dogRef);
dogRef->RefName = gcnew XmlQualifiedName("dog");
XmlSchemaSet^ schemaSet = gcnew XmlSchemaSet();
schemaSet->ValidationEventHandler += gcnew ValidationEventHandler(ValidationCallbackOne);
schemaSet->Add(schema);
schemaSet->Compile();
XmlSchema^ compiledSchema;
for each (XmlSchema^ schema1 in schemaSet->Schemas())
{
compiledSchema = schema1;
}
XmlNamespaceManager^ nsmgr = gcnew XmlNamespaceManager(gcnew NameTable());
nsmgr->AddNamespace("xs", "http://www.w3.org/2001/XMLSchema");
compiledSchema->Write(Console::Out, nsmgr);
}
static void ValidationCallbackOne(Object^ sender, ValidationEventArgs^ args)
{
Console::WriteLine(args->Message);
}
};
int main()
{
XmlSchemaExamples::Main();
return 0;
};
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 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 |
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 |
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 |
LineNumber |
Obtém ou define o número de linha no arquivo ao qual o elemento |
LinePosition |
Obtém ou define a posição da linha no arquivo ao qual o elemento |
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. |