XmlSchemaInference Classe

Definição

Infere um esquema XSD (Linguagem de Definição de Esquema XML) de um documento XML. A XmlSchemaInference classe não pode ser herdada.

public ref class XmlSchemaInference sealed
public sealed class XmlSchemaInference
type XmlSchemaInference = class
Public NotInheritable Class XmlSchemaInference
Herança
XmlSchemaInference

Exemplos

Este exemplo usa um arquivo XML como entrada e gera um esquema que pode validar o XML de exemplo.

XmlReader reader = XmlReader.Create("contosoBooks.xml");
XmlSchemaSet schemaSet = new XmlSchemaSet();
XmlSchemaInference schema = new XmlSchemaInference();

schemaSet = schema.InferSchema(reader);

foreach (XmlSchema s in schemaSet.Schemas())
{
    s.Write(Console.Out);
}
Dim reader As XmlReader = XmlReader.Create("contosoBooks.xml")
Dim schemaSet As XmlSchemaSet = New XmlSchemaSet()
Dim schema As XmlSchemaInference = New XmlSchemaInference()

schemaSet = schema.InferSchema(reader)

For Each s As XmlSchema In schemaSet.Schemas()
    s.Write(Console.Out)
Next

Veja a seguir o arquivo XML de entrada.

<bookstore xmlns="http://www.contoso.com/books">
  <book genre="autobiography" publicationdate="1981-03-22" ISBN="1-861003-11-0">
    <title>The Autobiography of Benjamin Franklin</title>
    <author>
      <first-name>Benjamin</first-name>
      <last-name>Franklin</last-name>
    </author>
    <price>8.99</price>
  </book>
  <book genre="novel" publicationdate="1967-11-17" ISBN="0-201-63361-2">
    <title>The Confidence Man</title>
    <author>
      <first-name>Herman</first-name>
      <last-name>Melville</last-name>
    </author>
    <price>11.99</price>
  </book>
  <book genre="philosophy" publicationdate="1991-02-15" ISBN="1-861001-57-6">
    <title>The Gorgias</title>
    <author>
      <name>Plato</name>
    </author>
    <price>9.99</price>
  </book>
</bookstore>

Veja a seguir o esquema inferido do documento XML.

<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://www.contoso.com/books" xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="bookstore">
        <xs:complexType>
            <xs:sequence>
                <xs:element maxOccurs="unbounded" name="book">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="title" type="xs:string" />
                            <xs:element name="author">
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element minOccurs="0" name="name" type="xs:string" />
                                        <xs:element minOccurs="0" name="first-name" type="xs:string" />
                                        <xs:element minOccurs="0" name="last-name" type="xs:string" />
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>
                            <xs:element name="price" type="xs:decimal" />
                        </xs:sequence>
                        <xs:attribute name="genre" type="xs:string" use="required" />
                        <xs:attribute name="publicationdate" type="xs:date" use="required" />
                        <xs:attribute name="ISBN" type="xs:string" use="required" />
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
        </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.
  • Mensagens de erro de validação de esquema e exceções podem expor informações confidenciais sobre o modelo de conteúdo ou caminhos de URI para o arquivo de esquema. Tenha cuidado para não expor essas informações a chamadores não confiáveis.

A XmlSchemaInference classe no System.Xml.Schema namespace permite inferir um esquema XSD (Linguagem de Definição de Esquema XML) da estrutura de um documento XML. A XmlSchemaInference classe gera um esquema XML que pode validar o documento XML.

A XmlSchemaInference classe dá suporte aos padrões W3C XML e XML Schemas. Ele pode ser usado para inferir um novo esquema ou refinar um esquema existente.

Construtores

Nome Description
XmlSchemaInference()

Inicializa uma nova instância da classe XmlSchemaInference.

Propriedades

Nome Description
Occurrence

Obtém ou define o XmlSchemaInference.InferenceOption valor que afeta declarações de ocorrência de esquema inferidas do documento XML.

TypeInference

Obtém ou define o XmlSchemaInference.InferenceOption valor que afeta os tipos inferidos do documento XML.

Métodos

Nome Description
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)
InferSchema(XmlReader, XmlSchemaSet)

Infere um esquema XSD (Linguagem de Definição de Esquema XML) do documento XML contido no XmlReader objeto especificado e refina o esquema inferido usando um esquema existente no XmlSchemaSet objeto especificado com o mesmo namespace de destino.

InferSchema(XmlReader)

Infere um esquema XSD (Linguagem de Definição de Esquema XML) do documento XML contido no XmlReader objeto especificado.

MemberwiseClone()

Cria uma cópia superficial do Objectatual.

(Herdado de Object)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Aplica-se a