XmlSchemaInference Classe

Définition

Déduit un schéma en langage XSD (XML Schema Definition) d'un document XML. La classe XmlSchemaInference ne peut pas être héritée.

public ref class XmlSchemaInference sealed
public sealed class XmlSchemaInference
type XmlSchemaInference = class
Public NotInheritable Class XmlSchemaInference
Héritage
XmlSchemaInference

Exemples

Cet exemple utilise un fichier XML comme entrée et génère un schéma qui peut valider l’exemple XML.

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

Voici le fichier XML d’entrée.

<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>

Voici le schéma déduit du document 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>

Remarques

Important

  • N’utilisez pas de schémas provenant de sources ou d’emplacements inconnus ou non approuvés. Cela compromettra la sécurité de votre code.
  • Les schémas XML (y compris les schémas inline) sont intrinsèquement vulnérables aux attaques par déni de service ; ne les acceptez pas dans des scénarios non approuvés.
  • Les messages d’erreur de validation de schéma et les exceptions peuvent exposer des informations sensibles sur le modèle de contenu ou les chemins d’URI du fichier de schéma. Veillez à ne pas exposer ces informations aux appelants non approuvés.

La XmlSchemaInference classe dans l’espace System.Xml.Schema de noms vous permet de déduire un schéma XSD (XML Schema Definition Language) à partir de la structure d’un document XML. La classe XmlSchemaInference produit un schéma XML pouvant valider le document XML.

La XmlSchemaInference classe prend en charge les normes de schémas XML et XML W3C. Il peut être utilisé pour déduire un nouveau schéma ou affiner un schéma existant.

Constructeurs

XmlSchemaInference()

Initialise une nouvelle instance de la classe XmlSchemaInference.

Propriétés

Occurrence

Obtient ou définit la valeur XmlSchemaInference.InferenceOption qui a un impact sur les déclarations d'occurrences du schéma déduites du document XML.

TypeInference

Obtient ou définit la valeur XmlSchemaInference.InferenceOption qui a un impact sur les types déduits du document XML.

Méthodes

Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.

(Hérité de Object)
GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
InferSchema(XmlReader)

Déduit un schéma en langage XSD (XML Schema Definition) du document XML contenu dans l'objet XmlReader spécifié.

InferSchema(XmlReader, XmlSchemaSet)

Déduit un schéma en langage XSD (XML Schema Definition) du document XML contenu dans l'objet XmlReader spécifié et raffine le schéma déduit à l'aide d'un schéma existant dans l'objet XmlSchemaSet spécifié avec le même espace de noms cible.

MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)

S’applique à