DataSet 與 xml


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM