XmlSchemaInference Klass

Definition

Härleder ett XSD-schema (XML Schema Definition Language) från ett XML-dokument. Klassen XmlSchemaInference kan inte ärvas.

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

Exempel

Det här exemplet tar en XML-fil som indata och genererar ett schema som kan verifiera XML-exemplet.

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

Följande är xml-indatafilen.

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

Följande är det schema som härleds från XML-dokumentet.

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

Kommentarer

Important

  • Använd inte scheman från okända eller ej betrodda källor eller platser. Om du gör det äventyras säkerheten för koden.
  • XML-scheman (inklusive infogade scheman) är i sig sårbara för överbelastningsattacker. acceptera dem inte i ej betrodda scenarier.
  • Felmeddelanden och undantag för schemavalidering kan exponera känslig information om innehållsmodellen eller URI-sökvägar till schemafilen. Var noga med att inte exponera den här informationen för ej betrodda uppringare.

Med XmlSchemaInference klassen i System.Xml.Schema namnområdet kan du härleda ett XSD-schema (XML Schema Definition Language) från strukturen för ett XML-dokument. Klassen XmlSchemaInference matar ut ett XML-schema som kan verifiera XML-dokumentet.

Klassen XmlSchemaInference stöder W3C XML- och XML-schemastandarder. Den kan användas för att härleda ett nytt schema eller för att förfina ett befintligt schema.

Konstruktorer

Name Description
XmlSchemaInference()

Initierar en ny instans av XmlSchemaInference klassen.

Egenskaper

Name Description
Occurrence

Hämtar eller anger det XmlSchemaInference.InferenceOption värde som påverkar schemaförekomstdeklarationer som härleds från XML-dokumentet.

TypeInference

Hämtar eller anger det XmlSchemaInference.InferenceOption värde som påverkar typer som härleds från XML-dokumentet.

Metoder

Name Description
Equals(Object)

Avgör om det angivna objektet är lika med det aktuella objektet.

(Ärvd från Object)
GetHashCode()

Fungerar som standard-hash-funktion.

(Ärvd från Object)
GetType()

Hämtar den aktuella instansen Type .

(Ärvd från Object)
InferSchema(XmlReader, XmlSchemaSet)

Härleder ett XSD-schema (XML Schema Definition Language) från XML-dokumentet som finns i det XmlReader angivna objektet och förfinar det angivna schemat med hjälp av ett befintligt schema i objektet XmlSchemaSet som anges med samma målnamnområde.

InferSchema(XmlReader)

Härleder ett XSD-schema (XML Schema Definition Language) från XML-dokumentet som finns i det XmlReader angivna objektet.

MemberwiseClone()

Skapar en ytlig kopia av den aktuella Object.

(Ärvd från Object)
ToString()

Returnerar en sträng som representerar det aktuella objektet.

(Ärvd från Object)

Gäller för