带你遨游.NET的XML世界

ZDNet软件频道 时间:2002-11-11 作者:BUILDER.COM |  我要评论()
本文关键词:
本文尝试带领初学者们对.NET中重要的XML类进行探索,并且粗略了解一下这些API背后的基本原理。

有关在.NET中使用XML的说法已经很多了,不幸的是,很多都非常夸张。但是仍然有两点是不可否认的:.NET使程序员拥有了一套集成的XML工具,这是微软第一次在它的开发平台中集成了对XML的支持。而且这次是完全的支持,在System.XML名字空间中可以找到超过150个类,真是一个另人惊讶的数字。接下来我会尝试带领初学者们对.NET中重要的XML类进行一番探索,并且粗略了解一下这些API背后的基本原理。

“pull model”与DOM和SAX的比较

如果你以前用过XML,你可能会熟悉两种主要的解读器-文档对象模型(DOM)和用于XML的简单API(SAX)。这两种类型的解读器的行为有着根本上的不同:DOM将整个XML文档载入内存中的一棵分层树中,而SAX每次只取一个元素并通过某种通信接口返回这个元素到应用程序,直到整个文档结束。


DOM?SAX?它们是什么?

如果人们在说DOM时你想到“Deluise”,或者在说SAX时你想到“Coltrane”,那你在继续看下去之前应该去看一看Builder.com 上的文章" XML补习"系列 来了解一下它们。另外,如果你使用的是VB6,“在VB6中使用DOM创建XML文档”这篇文章能够使你更多地了解DOM。


这两套API都有各自的问题。DOM严重地耗费资源,特别在文档比较大的时候。SAX则不是那么好用,它需要程序员跟踪先前用过的元素,而且没有真正提供一种方法来处理被选择的部分文档。

.NET的XML类采取了这两套API的折衷方法,并且将它们的优点融合到微软称之为“pull model”的模型之中。你要知道,这只是一个名字,没有特别的意义。我曾把它叫作XML流或者XML堆栈,不过这样的名字可能不够性感。不管怎么样,在.NET中,是用pull mode的类来通过一种简单的流式接口来解析和创建XML文档的。System.XML.XMLWriter和System.XML.XMLReader这两个抽象类为.NET的pull model提供了XML支持。


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134