Sdílet prostřednictvím


XmlSchemaInference Třída

Definice

Odvozuje schéma XSD (XML Schema Definition Language) z dokumentu XML. Třídu XmlSchemaInference nelze dědit.

public ref class XmlSchemaInference sealed
public sealed class XmlSchemaInference
type XmlSchemaInference = class
Public NotInheritable Class XmlSchemaInference
Dědičnost
XmlSchemaInference

Příklady

Tento příklad vezme soubor XML jako vstup a vygeneruje schéma, které může ověřit příklad 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

Následuje vstupní soubor XML.

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

Následuje schéma odvozené z dokumentu 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>

Poznámky

Důležité

  • Nepoužívejte schémata z neznámých nebo nedůvěryhodných zdrojů nebo umístění. Tím dojde k ohrožení zabezpečení vašeho kódu.
  • Schémata XML (včetně vložených schémat) jsou ze své podstaty zranitelná vůči útokům na odepření služeb; nepřijímá je v nedůvěryhodných scénářích.
  • Chybové zprávy a výjimky ověřování schématu můžou vystavit citlivé informace o modelu obsahu nebo cestách identifikátoru URI do souboru schématu. Buďte opatrní, abyste tyto informace nezpřístupnili nedůvěryhodným volajícím.

Třída XmlSchemaInference v System.Xml.Schema oboru názvů umožňuje odvodit schéma XSD (XML Schema Definition Language) ze struktury dokumentu XML. Třída XmlSchemaInference vypíše schéma XML, které může ověřit dokument XML.

Třída XmlSchemaInference podporuje standardy W3C XML a XML Schemas. Dá se použít k odvození nového schématu nebo k upřesnění existujícího schématu.

Konstruktory

XmlSchemaInference()

Inicializuje novou instanci XmlSchemaInference třídy.

Vlastnosti

Occurrence

Získá nebo nastaví XmlSchemaInference.InferenceOption hodnotu, která ovlivňuje deklarace výskytu schématu odvozené z dokumentu XML.

TypeInference

Získá nebo nastaví XmlSchemaInference.InferenceOption hodnotu, která ovlivňuje typy odvozené z dokumentu XML.

Metody

Equals(Object)

Určí, zda se zadaný objekt rovná aktuálnímu objektu.

(Zděděno od Object)
GetHashCode()

Slouží jako výchozí funkce hash.

(Zděděno od Object)
GetType()

Type Získá aktuální instanci.

(Zděděno od Object)
InferSchema(XmlReader)

Odvozuje schéma XSD (XML Schema Definition Language) z dokumentu XML obsaženého v zadaném objektu XmlReader .

InferSchema(XmlReader, XmlSchemaSet)

Odvozuje schéma XSD (XML Schema Definition Language) z dokumentu XML obsaženého XmlReader v zadaném objektu a upřesňuje odvozené schéma pomocí existujícího schématu v objektu XmlSchemaSet určeném se stejným cílovým oborem názvů.

MemberwiseClone()

Vytvoří použádnou kopii aktuálního souboru Object.

(Zděděno od Object)
ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)

Platí pro