.NET平台中访问XML数据的方法
- 格式:doc
- 大小:27.50 KB
- 文档页数:4
.NET平台中访问XML数据的方法
摘要:XML语言的开放性,语法的统一性,使得XML成为不同系统之间的数据交换的标准语言。
本文论述了XML文档的一般特点、XML同数据库的区别,简述了应用XML的优势。
给出了.NET平台下四种访问XML数据的方式,最后对四种方法进行简单比较。
关键词:XML数据库.NET访问
XML (ExtensibleMarkupLanguage) 是可扩展标记语言,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。
XML 是SGML (StandardGen2eralized Markup Language) 的子集,XML 在1998 年 2 月已被W3C 确认为国际标准, 目前XML已被大量应用于异构系统间的数据交换,数据集成,数据共享,将同一数据以不同的形式表现出来等。
1.XML 的特点
XML 语言具有三个显著特点:内容和形式分离、良好的可扩展性、良好的可移植性和良好的描述性。
1.1内容和形式分离。
这个特性为XML的应用带来了很大的好处。
当只想改变数据的表现形式时,只需修改从XML 文档中分离出的用于数据表现的样式单即可。
如XSL 技术,正是由于XML文件的内容和结构分离,XSL才可以在不影响内容的情况下改变XML文件结构。
同时基于这样的特点,企业系统可以轻松地实现内容管理和流程管理的彻底分离。
1.2良好的可扩展性。
XML 允许程序员制定自己的标记集,对于一个行业或一特定群也可以制定在自己范围内的通用标记,使得XML 可以轻松适应每一个领域。
例如:MathML(数学标记语言)、和TecML(技术数据标记语言),每种语言都用于其特定的环境。
1.3良好的可移植性。
XML具有统一的标准语法,只要交换数据的平台能处理XML 文档,就能处理由XML 标记的各种格式的数据这样就使得XML具有了跨平台跨系统的特性。
2.XML与数据库
XML文件同样是数据的集合。
XML提供了许多数据库中所需要的部分:存储( XML 文档),模式(DTD , XML schema,REIAX NG等等),查询语言(XQL,XQuery,XML-QL,QUILT 等等),编程接口(SAX , DOM,JDOM) 等等;XML 还缺少很多在标准数据库中所必备的内容,如: 有效的存储、索引、安全、事务和数据一致性、多用户访问、触发器、多文档查询等,XML仅仅是存储数据。
XML 的极其简单的特性决定了它的与众不同。
3..NET下XML数据的访问方法
在.NET 平台中有四个XML数据访问接口:ActiveX Data Objects (ADO) 、SQLXML、SqlDataReader和
3.1 ADO方法
使用ADO方法从数据库获得XML数据,首先创建并打开一个数据库连接,然后创建一个Command对象同时执行SQL语句得到RecordSet对象,RecordSet对象中存储着从数据库中获得的数据,要将结果集转换为XML,只需在调用RecordSet对象的Save()方法时将数据以XML的格式保存即可。
3.2 SQLXML方法
SQLXML托管类是.NET Framework的本地类,它们可以非常方便地向SQL Server数据库接收和发送XML数据。
SQLXML首先将数据转换为二进制,然后将数据从服务器端返回给客户端,最后在客户端上将二进制数据转换成XML。
要在SQLXML包中实现这个功能,首先将SqlXmlCommand对象的ClientSideXml属性值设置为真。
这时程序中的SELECT语句就带有FOR XML 子句。
在SQLXML托管类给SQL Server发送SQL语句前会先将FOR XML子句去掉。
这样数据库服务器就可以以二进制格式将数据返回给客户端,同时托管类会将从服务器返回的这些二进制数据再转化为XML格式。
3.3 SqlDataReader方法
SqlDataReader类提供一种使用一个连续只读的指针来进行数据存取的方式。
这种数据访问方式是进行SQL Server数据存取的最快的方式。
但由于SqlDataReader类不直接支持XML类型的数据,所以就必须自己先编写代码来完成XML转换,或者运行一个返回XML的查询过程,比如说使用For XML查询语句。
3.4 方法
为我们提供了全新的数据访问机制,提高了数据访问效率,简化了开发人员的工作量。
提供了两种数据访问模式:连接模式和非连接模式。
其中连接模式和ADO使用的模式相同,而非连接模式是.NET独有的,也是.NET平台下所推荐的方式。
在该模式下,一旦应用程序得到所需数据,就会同数据源断开连接,而数据在内存中以XML形式存在,这就使此模式具有更大的可执行性和灵活性。
非连接模式的核心部分就是中的DataSet数据集。
DataSet 类位于System.Data命名空间中,可以将DataSet理解为一个复杂的关系数据结构,它内建对XML序列化的支持。
在非连接模式下工作时,DataSet对象能将数据以XML的形式存储在内存中提供用户操作使用,通过一个简单的方法它就能将关系型的数据转化为层次化的具有良好模式的XML数据,这就是ADO. NET机制。
使用ADO. NET方法时,首先建立数据库连接,然后创建SqlCommand 对象,最后执行带有FOR XML 子句的查询语句。
在将得到的数据传出时,有两种选择,一种是使用SqlCommand对象的ExecuteXmlReader方法将数据生成一个新的XmlReader对象,然后再生成XML文件;另一种是使用ExecuteDataSet 方法将数据存储在一个新的DataSet对象中,然后将DataSet中的数据转换为XML。
3.5 访问方法的选择
由于四种访问方法对访问SQL Server中XML数据的支持程度都不同,所以当在完成解决方案以及代码量方面,选择不同的访问方法会产生不同的结果。
要根据需要选择合适的方法。
首先要看访问方法的可执行性和可扩展性,因为SQL Server数据库中的本地数据是以二进制格式存储的,所以将本地数据转换为XML格式就会需要很高的费用,从而很大程度上限制了所开发的应用程序的性能;其次,因为可能有时无法控制XML的格式,这就需要考虑访问方法返回的XML格式的可操控性;最后要考虑的就是访问方法完成功能所需要的代码量了。
我们要对这几个方法进行综合权衡,选择最适合我们实际应用的数据访问方式,要满足最大限度的降低项目开发的周期,提高应用程序的整体效率为目的。
4.结束语
在本文中,简述了XML的优点,着重介绍了.NET平台提供的XML数据访问方法。
随着XML的大量使用,以及各种新兴的开发工具的推出,XML 数据的访问方法越来越灵活多样,而这些访问方法也正朝着简单易操作的方向发展。
[参考文献]
[1] Didier M . XML 高级编程[ M ] . 李喆译. 北京: 机械工业出版社, 2001. 7-8.
[2]施伟斌. XML数据访问技术的研究. 复旦大学博士论文,2002. 4.
[3] Navarro A, White C , Burman L.XM L 从入门到精通[ M ] . 周生炳译. 北京: 电子工业出版社, 2000. 50-53.
[4]徐冰,李启炎,朱茜. XML解析器应用分析[J]. 计算机系统应用,2002,(1):30-32.。