XmlSchemaInference 類別

定義

從 XML 文件推斷 XML 結構描述定義語言 (XSD) 結構描述。 無法繼承 XmlSchemaInference 類別 (Class)。

public ref class XmlSchemaInference sealed
public sealed class XmlSchemaInference
type XmlSchemaInference = class
Public NotInheritable Class XmlSchemaInference
繼承
XmlSchemaInference

範例

此範例會採用 XML 檔案做為輸入,並產生可驗證範例 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

以下是輸入 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>

以下是從 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>

備註

重要

  • 請勿使用未知或不受信任的來源或位置的架構。 這樣做會危害程式碼的安全性。
  • XML 架構 (包括內嵌架構) 原本就容易遭受阻斷服務攻擊;在不受信任的案例中不接受它們。
  • 架構驗證錯誤訊息和例外狀況可能會公開內容模型或 URI 路徑的相關敏感性資訊給架構檔案。 請小心不要將此資訊公開給不受信任的呼叫端。

XmlSchemaInference命名空間中的 System.Xml.Schema 類別可讓您從 XML 檔的結構推斷 XML 架構定義語言 (XSD) 架構。 XmlSchemaInference 類別會輸出可驗證 XML 文件的 XML 結構描述。

類別 XmlSchemaInference 支援 W3C XML 和 XML 架構標準。 它可以用來推斷新的架構,或精簡現有的架構。

建構函式

XmlSchemaInference()

初始化 XmlSchemaInference 類別的新執行個體。

屬性

Occurrence

取得或設定 XmlSchemaInference.InferenceOption 值,影響從 XML 文件推斷的結構描述符合項目宣告。

TypeInference

取得或設定 XmlSchemaInference.InferenceOption 值,影響從 XML 文件推斷的型別。

方法

Equals(Object)

判斷指定的物件是否等於目前的物件。

(繼承來源 Object)
GetHashCode()

做為預設雜湊函式。

(繼承來源 Object)
GetType()

取得目前執行個體的 Type

(繼承來源 Object)
InferSchema(XmlReader)

從指定 XmlReader 物件中包含的 XML 文件,推斷 XML 結構描述定義語言 (XSD) 結構描述。

InferSchema(XmlReader, XmlSchemaSet)

從指定 XmlReader 物件中包含的 XML 文件,推斷 XML 結構描述定義語言 (XSD) 結構描述,並使用以相同目標命名空間指定之 XmlSchemaSet 物件中的現有結構描述,修改推斷的結構描述。

MemberwiseClone()

建立目前 Object 的淺層複製。

(繼承來源 Object)
ToString()

傳回代表目前物件的字串。

(繼承來源 Object)

適用於