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