用XML统一信息格式

2019-01-12 18:28

用XML统一信息格式

要解决信息的冗余问题,完全依赖人工智能算法是不可行的。在这方面首先要做的就是统一信息的格式,XML就是人们在这个方向上做出的重大努力和成果。

当人们连入互联网,扑面而来的是无穷无尽的信息。可是这些信息的冗余度非常高。在使用Google进行搜索时,大部分人所进行的搜索都会返回上千条结果,但也许只有很少一部分是不重复的信息。

要解决信息的冗余问题,完全依赖人工智能算法是不可行的。在这方面首先要做的就是统一信息的格式,XML就是人们在这个方向上做出的重大努力和成果。 基于XML的数据处理实际上分为以下几大领域: ● 对XML原始文档的解析; ● 对XML原始文档的验证; ● 对XML数据的各种操作; ● 对XML原始文档的转换。

在目前所有的编程语言中,只有Java在上述各个领域都提供了大量的方便易用的XML数据处理工具,并且,几乎所有工具都是免费和开源的。因此,我们谈到XML,就不能不提到Java,下面我们将分别介绍这些领域中基于Java

的XML数据处理基础支撑技术和应用。

对文档的解析

XML数据基于标记,很方便用户阅读和计算机理解,但是与以前基于普通文本和二进制的数据相比,在程序里对XML数据文件进行解析的难度加大了。因此,从一开始,人们就在考虑对XML数据文件的解析问题。到目前为止,人们已经想出了多种办法来解析XML,并制定了一些规范和事实上的标准。 ● SAX

SAX最初是由XML-DEV邮件列表的成员开发的一种用于基于事件的语法分析器的标准和简单的API。SAX是“Simple API for XML”的缩写。SAX最初是为Java而定义的,但是它也可以用于 Python、Perl、C++和COM。以后一定还有更多的语言绑定。与我们接下来要讲到的DOM不同,SAX没有经过官方标准机构的认可,但是它已被广泛使用,并被视为事实上的标准。

SAX实际上是一个接口集合,它允许开发人员在自己的应用中通过这个接口集合来读取和分析XML文档中的数据。解析器通过读入XML文件,根据所遇到的各个XML文件中的元素,产生不同的事件,主要有以下事件: 元素开

始和结束标记、元素内容、实体、语法分析错误。 开发人员只要提供自己实现的相应事件的事件处理程序,便能获得相应XML文档的信息。 ● DOM

DOM是Document Object Model的缩写,是对XML文档的内容进行表示的模型。它把XML文档看作是一系列node和node间的关系,并且把每一个node都当作一个对象,所以叫文档对象模型。

DOM是与编程语言无关的,因此有多种实现。这是一个非常大的优点,意味着用Java、C/C++,甚至是Javascript,在通过DOM API处理XML文档时的逻辑和方法名都是一致的。

DOM是以层次结构组织的节点或信息片断的集合。这个层次结构允许开发人员在树中导航仪寻找特定信息。分析该结构通常需要加载整个文档和构造层次结构,然后才能做其他工作。由于它是基于信息层次的,因而 DOM 被认为是基于树或基于对象的。 ● Pull Parser

除了SAX和DOM这两种占绝对优势的解析方法外,也有一种称做Pull的解析方法,这种解析方法在特定情形下性能更高,使用更方便。其基本思想就是等到用户要访问时才去解析某个片断,相当于把解析事件拉(Pull)出来,而不是解

析器主动把事件推(Push)给用户。比较典型的代表有XPP[2]和StAX[3],用户可以到相应的开发网站上获取相应的资料。

对文档的验证

对XML原始文档的验证分为两部分,首先是检验此XML文档是否是一个合法的XML文档,即是否well-form。这一步,在解析器解析的时候就会发现是否有错误,并会抛出相应的异常。其次就是根据此XML所对应的DTD或Schema,来验证此XML是否满足相应的结构和类型约束。如果要进行这一步验证,大多数解析器都要求在调用具体的解析方法之前设置一个参数,告之解析器还需要同时验证DTD或Schema。这个参数的设置方法跟具体的实现有关,没有统一的标准。由于第二步操作首先要涉及到解析Schema,获取各种约束,然后对XML进行校验,相对难度较第一步大很多,因此除了Sun和Apache的解析器外,其余不少解析器都还不支持第二步的验证。

对文档中数据的各种操作 ● DOM

通过标准的DOM API对XML文档进行操作是最通用的

方法,除了比较方便外,还可以在各种语言的程序之间取得统一。

● 其他文档对象模型

虽然DOM已经能够比较方便地操作XML文档,但是,在实际应用中,人们还是觉得不够方便。在这种背景下,一些人利用DOM的思想,创建了自己的文档对象模型,提供了自己的API,然后再辅以XPath,使得操作XML非常容易。采用这种方式的典型代表就是Jdom和Dom4j。现在采用上述这两个工具包解析XML文件的开发人员非常多,开发效率也比单纯的使用标准DOM API提高了很多。与此同时,这些工具包大都提供了与标准DOM兼容的接口,使得也能与采用标准DOM的程序兼容。 ● XML Data Binding

对于少量的XML数据操作来说,采用上述提到的Jdom或Dom4j已经能够很完美地解决问题。但是如果数据操作比较多,即使是通过上述工具包,开发人员也会淹没在一大堆例如增加节点、修改数据等操作中。除此之外,开发人员必须很清楚XML的结构,对XML的元素名的拼写也不能出错,这一切都使得操作XML不如平常的语言编程方便。 出于这种考虑,人们又发明了XML Data Binding技术,其根本思想就是把一个XML文档对象模型同一个Java或其他面向对象语言中的对象关联起来。这样用户只需要对这个


用XML统一信息格式.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:给青年教师的几点建议

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: