XmlSchemaInference Klasse

Definition

Leitet ein XSD-Schema (XML Schema Definition) von einem XML-Dokument ab.Infers an XML Schema Definition Language (XSD) schema from an XML document. Die XmlSchemaInference-Klasse kann nicht geerbt werden.The XmlSchemaInference class cannot be inherited.

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

Beispiele

In diesem Beispiel wird eine XML-Datei als Eingabe angenommen und ein Schema generiert, mit dem die XML-Beispieldatei überprüft werden kann.This example takes an XML file as input, and generates a schema that can validate the example 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

Im folgenden finden Sie die XML-Eingabedatei.The following is the input XML file.

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

Im folgenden wird das aus dem XML-Dokument herleitet Schema angezeigt.The following is the schema inferred from the XML document.

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

Hinweise

Wichtig

  • Verwenden Sie keine Schemas aus unbekannten oder nicht vertrauenswürdigen Quellen oder Speicherorten.Do not use schemas from unknown or untrusted sources or locations. Dadurch wird die Sicherheit Ihres Codes beeinträchtigt.Doing so will compromise the security of your code.
  • XML-Schemas (einschließlich Inline Schemas) sind von Natur aus anfällig für Denial-of-Service-Angriffe. akzeptieren Sie Sie nicht in nicht vertrauenswürdigen Szenarien.XML schemas (including inline schemas) are inherently vulnerable to denial of service attacks; do not accept them in untrusted scenarios.
  • Schema Validierungs Fehlermeldungen und-Ausnahmen können vertrauliche Informationen über das Inhalts Modell oder URI-Pfade zur Schema Datei verfügbar machen.Schema validation error messages and exceptions may expose sensitive information about the content model or URI paths to the schema file. Achten Sie darauf, diese Informationen nicht für nicht vertrauenswürdige Aufrufer verfügbar zu machen.Be careful not to expose this information to untrusted callers.

Mit der XmlSchemaInference-Klasse im System.Xml.Schema-Namespace können Sie ein XSD-Schema (XML Schema Definition Language) aus der Struktur eines XML-Dokuments ableiten.The XmlSchemaInference class in the System.Xml.Schema namespace allows you to infer an XML Schema Definition Language (XSD) schema from the structure of an XML document. Die XmlSchemaInference-Klasse gibt ein XML-Schema zur Validierung des XML-Dokuments aus.The XmlSchemaInference class outputs an XML schema that can validate the XML document.

Die XmlSchemaInference-Klasse unterstützt die W3C-XML-und XML-Schemas-Standards.The XmlSchemaInference class supports the W3C XML and XML Schemas standards. Sie kann verwendet werden, um ein neues Schema abzuleiten oder ein vorhandenes Schema zu verfeinern.It can be used to infer a new schema or to refine an existing schema.

Konstruktoren

XmlSchemaInference()

Initialisiert eine neue Instanz der XmlSchemaInference-Klasse.Initializes a new instance of the XmlSchemaInference class.

Eigenschaften

Occurrence

Ruft den XmlSchemaInference.InferenceOption-Wert ab, der sich auf die vom XML-Dokument abgeleiteten Deklarationen von Schemavorkommen auswirkt, oder legt diesen fest.Gets or sets the XmlSchemaInference.InferenceOption value that affects schema occurrence declarations inferred from the XML document.

TypeInference

Ruft den XmlSchemaInference.InferenceOption-Wert ab, der sich auf vom XML-Dokument abgeleitete Typen auswirkt, oder legt diesen fest.Gets or sets the XmlSchemaInference.InferenceOption value that affects types inferred from the XML document.

Methoden

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.Determines whether the specified object is equal to the current object.

(Geerbt von Object)
GetHashCode()

Dient als die Standard-HashfunktionServes as the default hash function.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.Gets the Type of the current instance.

(Geerbt von Object)
InferSchema(XmlReader)

Leitet ein XSD-Schema (XML Schema Definition) von dem XML-Dokument ab, das im angegebenen XmlReader-Objekt enthalten ist.Infers an XML Schema Definition Language (XSD) schema from the XML document contained in the XmlReader object specified.

InferSchema(XmlReader, XmlSchemaSet)

Leitet ein XSD-Schema (XML Schema Definition) von dem XML-Dokument ab, das im angegebenen XmlReader-Objekt enthalten ist, und passt das abgeleitete Schema mithilfe eines im XmlSchemaSet-Objekt vorhandenen Schemas an, das mit demselben Zielnamespace angegeben ist.Infers an XML Schema Definition Language (XSD) schema from the XML document contained in the XmlReader object specified, and refines the inferred schema using an existing schema in the XmlSchemaSet object specified with the same target namespace.

MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.Creates a shallow copy of the current Object.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.Returns a string that represents the current object.

(Geerbt von Object)

Gilt für: