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