1.將DataSet 寫入文件 將DataSet 寫入文件
• DataSet.WriteXml()
• XmlWriteMode
– WriteSchema:以XML 數據形式寫入DataSet 的當前內容,以關系結構作為內聯XSD 架構。
如果DataSet 只有架構而無數據,那么只寫入內聯架構,如果DataSet 沒有當前架構則不寫入任何內容。
– IgnoreSchema :以XML 數據形式寫入DataSet 的當前內容,不帶架構。如果無數據加載到DataSet 中,則不寫入任何內容。
– DiffGram:作為DiffGram寫入整個DataSet,包括原始值和當前值。若要生成只包含已更改的值的DiffGram,請調用GetChanges,
然后在返回的DataSet 上作為DiffGram調用WriteXml。
2.從XML文件讀取到DataSet
• DataSet.ReadXml()
• XmlReadMode
–Auto:默認值。
– ReadSchema:讀取任何內聯架構並加載數據。如果DataSet已經包含架構則可以將新表添加到架構中,但是如果內聯架構中的
任何表在DataSet中已經存在,則會引發異常。
– IgnoreSchema :忽略任何內聯架構並將數據讀入現有的DataSet。如果任何數據與現有的架構不匹配,就會將這些數據丟棄
(包括為DataSet定義的不同命名空間中的數據)。如果數據是DiffGram,IgnoreSchema 與DiffGram具有相同的功能。
– DiffGram:讀取DiffGram,將DiffGram中的更改應用到DataSet。語義與Merge操作的語義相同。與Merge 操作一樣,保留
RowState值向ReadXml的DiffGram輸入只能使用WriteXml中的 RowState值。向ReadXml的DiffGram輸入只能使用WriteXml中的
DiffGram輸出來獲得。
– InferSchema :忽略任何內聯架構,從數據推斷出架構並加載數據。如果DataSet已經包含架構,就通過添加新表或者向現有的表添加列,
來擴展當前架構。如果推斷的表已經存在但是具有不同的命名空間,或者如果推斷的列中有一些與現有的列沖突,則會引發異常。
– Fragment:針對SQLServer 的實例讀取XML片段(例如,通過執行FORXML查詢生成的XML片段)。當XmlReadMode設置為
Fragment時,默認命名空間作為內聯架構來讀取。
– InferTypedSchema :忽略任何內聯架構,從數據推斷出強類型架構並加載數據,如果無法從數據推斷出類型,則會將其解釋為字符串數據。
如果DataSet已經包含架構,就通過添加新表或者通過向現有的表中添加列來擴展當前架構。如果推斷的表已經存在
但是具有不同的命名空間或者如果推斷的列中有一些與現有的列 是具有不同的命名空間,
或者如果推斷的列中有一些與現有的列沖突,則會引發異常。
3.獲取XML結果
• DataSet.GetXml()
• 調用此方法與調用WriteXml並將XmlWriteMode 設置為IgnoreSchema 相同。
• GetXml 以字符串的形式返回XML,因此,與將XML 寫入文件的WriteXml相比,它需要更多的系統開銷。
• 如果使用架構推理生成DataSet 並使用XML 或Web 服務對它進行序列化,則列的排序方式可能會改變。
4.SQL Server 中的FOR XML語句
• 擴展SELECT 語法
• 返回XML,代替了行和列 返回XML,代替了行和列
• 可配置用於返回屬性,元素和架構
• 使用XML客戶端應用程序會受益
5.RAW模式查詢
6.AUTO 模式查詢
• 數據實體的XML表示
• 數據實體的XML表示
• 基於連接優先的嵌套數據
• 可以使用例如ELEMENTS和ROOT 的選項
7.EXPLICIT 模式查詢

8.PATH 模式查詢
• 使用XPath 來指定XML格式 • 使用XPath 來指定XML 格式
• 允許嵌套數據的創建
• 比使用EXPLICIT 模式更加容易
9.顯示嵌套XML的語法
10.詳解.Net XPath 處理引擎
• DOM
-重量級讀寫
-隨機訪問
-易於訪問復雜對象模型
• XmlReader
-輕量級訪問
-只讀
-只向前
-訪問快速
a.創建XPathNavigator 對象
• 下面的類都實現了System.Xml.XPath命名空間的IXPathNavigable 接口,都可以使用方法返回對象CreateNavigator 方法返回XPathNavigator 對象
– XPathDocument
– XmlDocument
– XmlNode
• 使用XPathNavigator 對象可以選擇、計算、瀏覽和(在有些情況下)編輯基礎XML數據。
• 選擇節點
– Select ()
– SelectSingleNode()
• 計算XPath 表達式
– Evaluate()
• 匹配節點與XPath 表達式
– Matches()
b.訪問XML 數據
• OuterXml屬性
– 用於獲取整個XML 文檔的標記或只獲取單個節點及其子節點的標記。
• ReadSubtree () 方法
– 用於將XML 文檔的全部內容或只是單個節點及其子節點流處理到XmlReader 對象。
c.編輯XML 數據
• 插入節點
– InsertAfter、InsertBefore 、InsertElementAfter 、InsertElementBefore
– AppendChild 、PrependChild、AppendChildElement、PrependChildElement
– CreateAttribute 、CreateAttributes
• 修改節點
–SetValue 、SetTypedValue
• 刪除節點
– DeleteSelf
