XmlSchemaInference 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
從 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) |