XmlSchemaInference Klasse

Definition

Leitet ein XSD-Schema (XML Schema Definition) von einem XML-Dokument ab. Die XmlSchemaInference-Klasse kann nicht geerbt werden.

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 verwendet und ein Schema generiert, das die Beispiel-XML überprüfen kann.

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 ist die XML-Eingabedatei aufgeführt.

<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 Schema aus dem XML-Dokument abgeleitet.

<?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. Dadurch wird die Sicherheit Ihres Codes gefährdet.
  • XML-Schemas (einschließlich Inlineschemas) sind grundsätzlich anfällig für Denial-of-Service-Angriffe. in nicht vertrauenswürdigen Szenarien nicht akzeptieren.
  • Fehlermeldungen und Ausnahmen für die Schemaüberprüfung können vertrauliche Informationen über das Inhaltsmodell oder die URI-Pfade für die Schemadatei verfügbar machen. Achten Sie darauf, diese Informationen nicht für nicht vertrauenswürdige Aufrufer verfügbar zu machen.

Mit XmlSchemaInference der System.Xml.Schema -Klasse im -Namespace können Sie ein XSD-Schema (XML Schema Definition Language) aus der Struktur eines XML-Dokuments ableiten. Die XmlSchemaInference-Klasse gibt ein XML-Schema zur Validierung des XML-Dokuments aus.

Die XmlSchemaInference -Klasse unterstützt die W3C-Standards XML und XML-Schemas. Es kann verwendet werden, um ein neues Schema abzuleiten oder ein vorhandenes Schema zu verfeinern.

Konstruktoren

XmlSchemaInference()

Initialisiert eine neue Instanz der XmlSchemaInference-Klasse.

Eigenschaften

Occurrence

Ruft den XmlSchemaInference.InferenceOption-Wert ab, der sich auf die vom XML-Dokument abgeleiteten Deklarationen von Schemavorkommen auswirkt, oder legt diesen fest.

TypeInference

Ruft den XmlSchemaInference.InferenceOption-Wert ab, der sich auf vom XML-Dokument abgeleitete Typen auswirkt, oder legt diesen fest.

Methoden

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
InferSchema(XmlReader)

Leitet ein XSD-Schema (XML Schema Definition) von dem XML-Dokument ab, das im angegebenen XmlReader-Objekt enthalten ist.

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.

MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Gilt für: