XmlSchemaInference Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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) |