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

posted on 2012-06-01 22:37  refactor  阅读(6971)  评论(1编辑  收藏  举报

导航