共用方式為


.NET Framework 中的 XML 設計目標

.NET Framework 中的 XML 目標為:

  • 與 W3C 標準相容。

  • 擴充性。

  • 可外掛式架構。

  • 效能。

  • 與 ADO.NET 緊密整合。

標準相容性

標準相容性意味著類別完全依照目前 W3C 所建議的 XML、命名空間、XSLT、XPath、結構描述和文件物件模型 (DOM) 標準。相容性可確保互通性,並讓您輕鬆地在各種平台上開發應用程式。

最特別的是,.NET Framework 中的 XML 類別可支援 W3C XML 結構描述定義語言 (XSD) 1.0 版建議事項。.NET Framework 中除了有 XML 類別可提供驗證之外,還提供了一個物件模型可建置記憶體中的 XSD 結構描述。可對 XML 結構描述與 DTD 進行驗證的快速順向剖析器,稱為 XmlReaderXmlReader 是具有相容性的 XML 剖析器。XmlSchemaSet 類別可用來快取常用的 XML 結構描述。

.NET Framework 中有一組 XML 類別可提供結構描述物件模型 (SOM),讓您以程式設計的方式建置與編譯 XSD 結構描述。XmlSchema 類別代表 XSD 結構描述。這些結構描述可透過 XmlReaderXmlWriter 類別來載入及保存。

XmlDocument 類別可實作文件物件模型層級 1 和層級 2 的建議事項,而定製成 .NET Framework 的通用設計方針。例如,將方法的名稱大寫。

XslCompiledTransform 類別符合 XSL 轉換 (XSLT) 1.0 版建議事項和 XML 路徑語言 (XPath) 1.0 版建議事項,以 XSLT 來轉換文件。

擴充性

根據設計,.NET Framework 中的 XML 類別可利用抽象基底類別和虛擬方法進行擴充。這項擴充性可透過 XmlResolver 類別來說明。XmlResolver 類別是一種可解析實體、匯入或匯出項目等 XML 資源的抽象類別。XmlUrlResolverXmlSecureResolver 類別是 XmlResolver 類別的實作。您可以從 XmlResolver 類別或其實作中衍生,以建立自訂版本的 XmlResolver 類別。例如,您可以建立將快取資料流儲存在本機磁碟中的衍生 XmlUrlResolver 類別。

可外掛式架構

.NET Framework 中的 XML 擁有可外掛式的架構。在此資料流架構中,可外掛式意味著在 .NET Framework 中這些以抽象類別為基礎的元件將可輕鬆地替換。可外掛式架構也意味著資料可流通於元件之間,而插入此資料流中的新元件可改變處理方式。例如,來自 XML Web Service 的 XML 資料流可藉由 XmlReader 進行剖析。XmlReader 可用來建立 XmlDocument,而 XmlDocument 接著可用來建立 XmlNodeReader

另一個範例是,從 XmlReader 載入 DOM (XmlDocument 類別),並使用 XmlWriter 來儲存輸出。

您也可以建立自己的 XmlReader 類別實作,並將其載入 XmlDocument 類別中。例如,您可以從基底 XmlReader 類別衍生新的類別並加以自訂,使其將檔案系統公開為 XML。接著,這項新的自訂 XmlReader 實作可載入 XmlDocument 中。這可替以現有類別為基礎的新類別提供可外掛式的架構。

將元件一起外掛的另一個範例是在轉換程序中使用不同的資料存放區,例如 XPathDocumentXmlDocument。這些資料存放區可透過 XslCompiledTransform 類別進行轉換,接著,輸出資料可串流至另一個存放區,或當作 XML Web Service 的資料流傳回。

效能

.NET Framework 中的 XML 類別代表低階的 XML 處理元件,不僅可作為 .NET Framework 的一部份來使用,還可將 XML 整合至應用程式。

.NET Framework 中的 XML 類別是專為支援資料流形式的模型而設計的,並擁有下列特性:

  • 使用 XmlReader 對順向、提取模式的剖析進行最小的快取。

  • 使用 XmlReader 進行順向驗證。

  • 採用創新的 XPathNavigator 資料指標樣式進行巡覽,可將節點的建立最小化為單一虛擬節點,但仍提供文件的隨機存取。和 DOM 一樣,並不要求在記憶體中建置完整的節點樹狀結構。

XPathDocument 是 XPath 查詢的最佳化唯讀存放區,並且是必須執行 XSLT 處理時的建議使用存放區。使用此存放區與 XslCompiledTransform 類別,可加快 XSLT 轉換的速度。

與 ADO.NET 整合

透過 XML 類別和 ADO.NET 之間的緊密整合,.NET Framework 中的關聯式資料可和 XML 結合在一起。

DataSet 類別是一項擷取自資料庫的記憶體中資料快取。DataSet 可使用 XmlReaderXmlWriter 類別來讀取及寫入 XML,並可將其內部的關聯式結構描述結構保存為 XML 結構描述 (XSD),還可以推測 XML 文件的結構描述結構。

請參閱

其他資源

XML 文件和資料