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