TechTarget中国网站推荐

透视:进行 XML 数据处理的Java API

2008-1-2  选择字号:  | |
打印本文章
正在加载数据...

【TechTarget中国原创】从Java1.4开始,大多数的XML处理任务可以在标准版本的类中得以处理,而且Java1.5还添加了很多新工具。如果你正在寻找一个升级你的Java开发工具到1.5版本的理由的话,那么它可以进行XML文档处理的能力就应该是你所需要的全部。

  曾经有一段时期,程序员们在尝试使用Java编程来处理XML文档,他们必须从Sun公司、Apache软件组织或者从其他的来源中到处搜寻一个或更多的库文件,并且把这些库添加到他们的Java程序环境中。无论如何,从Java1.4开始,大多数的XML处理任务可以在标准版本的类中得以处理,而且Java1.5还添加了很多新工具。如果你正在寻找一个升级你的Java开发工具到1.5版本的理由的话,那么它可以进行XML文档处理的能力就应该是你所需要的全部。

  对XML进行处理基本上划分为两种方式:一次性不间断地读入整个文档,以及分单元的连续地读取文档。Java为进行XML 数据处理提供Java API或者提供JAXP API,它包括一个能够对这两种方式进行处理的标准API。JAXP 1.3是最新的版本,于2004年9月最终定下来。它是在Java1.5标准版本中实现的。

  JAXP被设计成为一个独立执行的、便携式的API,也就是说:任何经销商的语法分析工具包,只要它们是符合API规范的,都可以嵌入到一个写API的程序中去。实际上,你很有可能找到符合Java标准版本的语法分析程序以此来满足需要。

  大多数人很容易就掌握了文件对象模型(Document Object Model)或者称为DOM,因为它表示成为一个分层的或者是“树”状的结构,就像是在HTML和XHTML文档中使用的一样。使用这种方式,整个文档在读入内存的时候,他的每一个节点都是可以被检查和监控的。监控DOM的关键Java包是org.w3c.dom,其中包含的“ org.w3c”反映出整体实现过程是遵守万维网协会的XML文件对象模型 (DOM)标准(World-Wide Web Consortium XML DOM standard)的。

  在org.w3c.dom包中主要的接口是节点Node。在一个DOM 表述中,XML文档中的所有元素都是继承Node接口或者子接口的对象。举例说明,有这样一些接口代表元素、属性、正文以及注释。那么它的DOM表述包含一个互相联系的Java对象的集合,并以此来表示整个XML文档的内容。为节点接口服务的JavaDocs有一个表格,当实现这些接口时,它是用来显示对象的属性的。当你使用DOM写Java程序之前应该熟悉这个表格。

  DOM编程模型的优势在于每个元素都可以被有效地定位、监控并且修改。那么编程时使用DOM的缺点是需要处理时间和内存。甚至你仅仅只是读入XML文档的一个简单的元素,那么你也必须把整个文档读入内存中并且进行解析。随着文档越来越大,DOM处理会变得越来越不实用。

  使用连续的语法分析并不像前一种方式那样明显,但是它会提供许多的好处。一个连续的语法分析把整个文档分成单元,并且每次只处理一个元素。由程序员决定需要保留哪些信息以及忽略哪些信息。在JAXP库中的连续的语法分析称为XML的简单API或者SAX (Simple API for XML)。David Megginson开发出在W3C之外的为Java编程使用的SAX。在Java库中SAX编程的关键包是org.xml.sax。

  一个SAX语法分析程序在XML文档中是这样工作的,当它遇到元素时,它便生成代表这个元素的事件。SAX处理程序包含创建类和方法,并且使用这些类和方法来处理事件、提取所需信息。

  Java标准版本提供一些其他的与XML相关API,以此来确保在Java与XML共同使用时可以更加简单快速。所有的这些工具都是建立在JAXP这个基础之上的。那么,其他的文章将会对这些先进工具做出进一步的讨论。

【美国TechTarget独家授权】 A look inside the Java API for XML Processing

【原创内容,版权所有,谢绝转载。TechTarget中国将保留追究其法律责任的权利。】
作者:William Brogden    
金蝶中间件有限公司(以下简称金蝶中间件)近日传来喜讯,成功中标湖南省电子政务外网数据交换平台及信用信息系统二期。据介绍,本项目将采用基于J2EE……
探究跨平台Web服务集成所面对的常见的互操作性难题的根源。该系列文章中的第3部分描述了J2EE技术与.NET之间可以导致Web服务互操作性困难的不同的命名约定……
该系列文章中的第2部分探索对于公共的互操作性的需求来源,该需求面向跨平台的Web服务集成。跟随Wangming Ye分析互操作的失败原因——使用某些数据类型……
微软倡导的SOA是“Real World SOA”的概念,建议企业从业务面有痛处或问题部分作为出发点,以6至8周为一个周期,分三阶段:先找到Services,再组装Services……
很难想像没有服务的面向服务架构(SOA)是什么样子的,毕竟,服务是SOA的重点(甚至在它的名称中也是)。如果面向服务架构是一种商务和技术架构把围绕服务作为目的的……
在您最近的博客中提到,在XML.com中有你喜欢的XML内容。关于XML的信息还可通过什么途径可以得到?请与我们分享更多的来源……
上周有测试提到测试页面流时由于测试人员对SDO不是很了解,有些问题测试得不是很深,由于我对SDO比较了解,所以希望我能提供一点SDO技术性测试思路……
“这些项目很多都没有取得成功,因为人们把太多时间的浪费在了连接两个系统所用的技术上,而没有重视他们所要集成的业务流程,” Kelman解释说。“如果员工没有看到……
事实上,企业用户需要商务智能成为他们工作领域的一部分,与他们的公司门户网站和企业搜索等功能集成在一起,并且能够通过移动设备访问和嵌入在流程过程中和其它……
面向服务的架构(SOA)是一种基于可以重用的服务的,新的开发应用的架构体系. 近年来, 企业界对于SOA的需求越来越急切. 为了满足这样的需求, 一系列的SOA基础架构产品被推出. 主要的厂商如Oracle, BEA System, IBM都提供了SOA平台产品. 在一个包含各类应用的复杂的IT系统中, 要使用适配器并且在一个符合业务需求的流程中将各类应用串连在一起是一个非常困难的事情, 但是现在的SOA平台将困难转变成了容易。
Web 2.0是2003年之后互联网的热门概念之一,不过对什么是Web2.0并没有很严格的定义。一般来说Web 2.0是相对Web1.0的新的一类互联网应用的统称。
Ruby on Rails, 也称RoR或简称Rails, 是一个使用Ruby语言写的开源网络应用框架,它是严格按照MVC结构开发的。它努力使自身保持简单,来使实际的应用开发时的代码更少,使用最少的配置。
最新更新
专家答疑
技巧
Jason Bloomberg
企业是否应该意识到,云计算有许多积极因素,是否也有负面影响呢?重要的是要记住,云计算仍然非常新,而且在许多方面比vaporware更现实……
Ron Schmelzer,Jason Bloomberg
我们正在进入多元化的银行和金融服务,我们处理客户关系管理CRM,BI,遗产系统,产品J2EE和.NET和其他异构平台。如果我们想要转移到一个共同的平台,为什么要选择SOA……
Ed Tittel
在您最近的博客中提到,在XML.com中有你喜欢的XML内容。关于XML的信息还可通过什么途径可以得到?请与我们分享更多的来源……