共用方式為


XML 與關係型數據和 ADO.NET 整合

XmlDataDocument 類別是 XmlDocument 的衍生類別,且包含 XML 數據。 XmlDataDocument 的優點是它提供關係型和階層式數據之間的橋樑。 它是可以系結至 DataSetXmlDocument,而且這兩個類別都可以同步處理對兩個類別中所含數據的變更。 系結至 DataSetXmlDocument 可讓 XML 與關係型數據整合,而且您不必讓數據以 XML 或關係型格式表示。 您可以同時處理兩者,而不會被限制在單一的數據表現形式上。

在兩個檢視中提供數據的優點如下:

  • XML 檔的結構化部分可以對應至數據集,並有效率地儲存、編製索引和搜尋。

  • 透過關係型方式儲存的 XML 數據,您可以使用游標模型高效地進行轉換、驗證和導覽。 有時,相較於 XML 儲存在 XmlDocument 模型中,它可以更有效率地針對關係結構執行。

  • DataSet 可以儲存 XML 的一部分。 也就是說,您可以使用 XPathXslTransform 只儲存至 DataSet 那些感興趣的元素和屬性。 從該處,您可以對較小的篩選數據子集進行變更,並將變更傳播至 XmlDataDocument 中的較大數據。

您也可以對從 SQL Server 載入 DataSet 的數據執行轉換。 另一個選項是將 .NET Framework 類別樣式管理的 WinForm 和 WebForm 控制件系結至從 XML 輸入數據流填入的 DataSet

除了支援 XslTransform 之外, XmlDataDocument 也會向 XPath 查詢和驗證公開關係型數據。 基本上,所有 XML 服務都可透過關係型數據取得,而控制系結、codegen 等關係型設施可透過 XML 的結構化投影取得,而不會影響 XML 精確度。

因為 XmlDataDocument 繼承自 XmlDocument,所以它會提供 W3C DOM 的實作。 XmlDataDocumentDataSet 相關聯並儲存其數據子集,但這不會以任何方式限制或改變其作為 XmlDocument 的使用。 撰寫以使用 XmlDocument 的程式碼可以直接運行於 XmlDataDocument,而無需修改。 DataSet 藉由定義數據表、數據行、關聯和條件約束,提供相同數據的關係型檢視,而且是獨立的記憶體內部用戶數據存放區。

下圖顯示 XML 資料與 DataSetXmlDataDocument 的不同關聯:

此圖顯示與 XML 資料集的不同關聯。

此圖顯示 XML 資料可以直接載入 DataSet,以關係型方式直接操作 XML。 或者,XML 可以載入至 DOM 的衍生類別,也就是 XmlDataDocument,然後載入並與 DataSet 同步處理。 由於 DataSetXmlDataDocument 會透過單一資料集進行同步處理,因此對一個存放區中的數據所做的變更會反映在另一個存放區中。

XmlDataDocument 會從 XmlDocument 繼承所有編輯和導覽功能。 有時使用 XmlDataDocument 及其繼承的功能,與 DataSet 同步處理,是比直接將 XML 載入 DataSet 更適當的選項。 下表顯示在選擇用於載入 DataSet 的方法時需要考慮的項目。

將 XML 直接載入 DataSet 的時機 何時同步處理 XmlDataDocument 文件與 DataSet
DataSet 中的數據查詢比 XPath 更容易使用 SQL。 DataSet 中的數據需要 XPath 查詢。
在來源 XML 中保留項目順序並不重要。 保留來源 XML 中的項目順序非常重要。
元素之間和格式中的空白不需要保留在源 XML 中。 在來源 XML 中,空白及格式的保留非常重要。

如果直接從 DataSet 載入和寫入 XML 符合您的需求,請參閱 從 XML 載入資料集 ,並將 DataSet 寫入為 XML 數據

如果從 XmlDataDocument 載入 DataSet 符合您的需求,請參閱同步處理資料集與 XML 檔

另請參閱