Compartir vía


XmlSchemaInference Clase

Definición

Infiere un esquema del lenguaje de definición de esquemas XML (XSD) a partir de un documento XML. La clase XmlSchemaInference no se puede heredar.

public ref class XmlSchemaInference sealed
public sealed class XmlSchemaInference
type XmlSchemaInference = class
Public NotInheritable Class XmlSchemaInference
Herencia
XmlSchemaInference

Ejemplos

En este ejemplo se toma un archivo XML como entrada y se genera un esquema que puede validar el XML de ejemplo.

XmlReader^ reader = XmlReader::Create("contosoBooks.xml");
XmlSchemaSet^ schemaSet = gcnew XmlSchemaSet();
XmlSchemaInference^ schema = gcnew XmlSchemaInference();

schemaSet = schema->InferSchema(reader);

for each (XmlSchema^ s in schemaSet->Schemas())
{
    s->Write(Console::Out);
}
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

A continuación se muestra el archivo 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>

A continuación se muestra el esquema inferido del 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>

Comentarios

Importante

  • No use esquemas de orígenes o ubicaciones desconocidos o que no sean de confianza. Si lo hace, se pondrá en peligro la seguridad del código.
  • Los esquemas XML (incluidos los esquemas insertados) son intrínsecamente vulnerables a ataques de denegación de servicio; no los acepte en escenarios que no son de confianza.
  • Los mensajes de error y las excepciones de validación de esquemas pueden exponer información confidencial sobre el modelo de contenido o las rutas de acceso de URI al archivo de esquema. Tenga cuidado de no exponer esta información a los autores de llamadas que no son de confianza.

La XmlSchemaInference clase del System.Xml.Schema espacio de nombres permite deducir un esquema del lenguaje de definición de esquemas XML (XSD) a partir de la estructura de un documento XML. La clase XmlSchemaInference produce como resultado un esquema XML que puede validar el documento XML.

La XmlSchemaInference clase admite los estándares XML y XML Schemas de W3C. Se puede usar para deducir un nuevo esquema o para refinar un esquema existente.

Constructores

XmlSchemaInference()

Inicializa una nueva instancia de la clase XmlSchemaInference.

Propiedades

Occurrence

Obtiene o establece el valor de XmlSchemaInference.InferenceOption que afecta a las declaraciones de aparición de esquemas que se infieren del documento XML.

TypeInference

Obtiene o establece el valor de XmlSchemaInference.InferenceOption que afecta a los tipos que se infieren del documento XML.

Métodos

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
InferSchema(XmlReader)

Infiere un esquema del lenguaje de definición de esquemas XML (XSD) a partir del documento XML incluido en el objeto XmlReader especificado.

InferSchema(XmlReader, XmlSchemaSet)

Infiere un esquema del lenguaje de definición de esquemas XML (XSD) a partir del documento XML incluido en el objeto XmlReader especificado, y refina el esquema inferido utilizando un esquema existente en el objeto XmlSchemaSet especificado con el mismo espacio de nombres de destino.

MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Se aplica a