共用方式為


將數據集內容寫入為 XML 數據

在 ADO.NET 中,您可以撰寫 DataSet 的 XML 表示法,並且可以選擇是否包含其架構。 如果架構資訊與 XML 內嵌在一起,則會使用 XML 架構定義語言 (XSD) 撰寫。 架構包含的 DataSet 數據表定義,以及關聯和條件約束定義。

DataSet寫入為 XML 數據時,DataSet中的行會以其目前版本寫入。 不過, DataSet 也可以寫入為 DiffGram,以便包含目前和數據列的原始值。

DataSet XML 表示可以寫入檔案、數據流、 XmlWriter 或字串。 這些選項可讓您彈性地傳輸 的 DataSetXML 表示法。 如要取得 DataSet 的 XML 字串表示形式,請使用 GetXml 方法,如以下範例所示。

Dim xmlDS As String = custDS.GetXml()
string xmlDS = custDS.GetXml();

GetXml 回傳沒有結構資訊的 DataSet 的 XML 表示。 若要將架構資訊從 DataSet (XML 架構) 寫入字串,請使用 GetXmlSchema

若要將一個DataSet寫入檔案、資料流或XmlWriter,請使用WriteXml方法。 你傳遞 WriteXml 給的第一個參數是 XML 輸出的目的地。 例如,傳遞包含檔名、 System.IO.TextWriter 物件等的字串。 你可以傳遞一個可選的第二個參數 XmlWriteMode,來指定如何撰寫 XML 輸出。

下表顯示 XmlWriteMode 的選項。

XmlWriteMode 選項 說明
IgnoreSchema DataSet的目前內容寫成XML數據,不使用XML結構描述。 這是預設值。
WriteSchema DataSet 的目前內容寫入為具有關係結構的 XML 數據,其中內嵌 XML 架構。
DiffGram 將整個 DataSet 寫入為 DiffGram,包括原始值和目前值。 如需詳細資訊,請參閱 DiffGrams

當你編寫一個包含DataRelation物件的DataSet的 XML 表示時,你很可能會希望每個關係的子列都嵌套於其相關的父元素內。 為了達成此目標,當你將DataRelation加入DataSet時,將DataRelationNested屬性設為true。 如需詳細資訊,請參閱 巢狀資料關係

以下是將 DataSet 的 XML 表示寫入檔案的兩個範例。 第一個範例會將所產生 XML 的檔名當做字串傳遞至 WriteXml。 第二個範例會傳遞 System.IO.StreamWriter 物件。

custDS.WriteXml("Customers.xml", XmlWriteMode.WriteSchema)
custDS.WriteXml("Customers.xml", XmlWriteMode.WriteSchema);
Dim xmlSW As System.IO.StreamWriter = New System.IO.StreamWriter("Customers.xml")
custDS.WriteXml(xmlSW, XmlWriteMode.WriteSchema)
xmlSW.Close()
System.IO.StreamWriter xmlSW = new System.IO.StreamWriter("Customers.xml");
custDS.WriteXml(xmlSW, XmlWriteMode.WriteSchema);
xmlSW.Close();

將數據行對應至 XML 元素、屬性和文字

你可以利用 ColumnMapping 物件的 DataColumn 屬性指定表格欄位如何在 XML 中表示。 下表顯示資料表欄的 ColumnMapping 屬性的不同 MappingType 值以及所得的 XML。

MappingType 的值 說明
元素 這是預設值。 欄位會被寫入為 XML 元素,其中 ColumnName 是元素的名稱,欄位的內容會被寫入為元素的文字。 例如:

<ColumnName>Column Contents</ColumnName>
屬性 數據行中的 XML 元素會將數據列寫入為 XML 屬性,其中 ColumnName 是屬性的名稱,數據列的內容則寫為屬性的值。 例如:

<RowElement ColumnName="Column Contents" />
SimpleContent 數據列的內容被寫入當前行的 XML 元素中作為文字。 例如:

<RowElement>Column Contents</RowElement>

請注意,無法將 SimpleContent 設定在有 Element 欄位或巢狀關係的表格欄位上。
隱藏 欄不會寫入 XML 輸出中。

另請參閱