RSS订阅
RSS订阅TT SOA

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

2008-1-2  选择字号:  | |
打印本文章

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

关键词:XML数据处理 Java Sun Apache

正在加载数据...

【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    
相关的专家答疑
相关的白皮书
受伤的经济意味着束紧的腰带,用户习惯改变,Web则成为一个选择的平台。Infoworld.com通过他们的水晶球预示了2009年的软件发展……
大多数企业IT运营主要依赖批处理操作。这种依赖在你升级到SOA的时候也不会消失,尽管SOA仅意味着向许多人提供在线交易处理。IBM软件实验室服务部门主管IT设计师……
我们正在寻找一种从主机选择SOAP服务器的请求。我们希望制造一个远程程序呼叫(RPC)从CICS程序的SOAP服务器,其中进程请求,使错误或成功后的反应……
CBSD的主要优点之一是重用,它的目标是代码、设计、解决方案都能重用。而设计模式是设计经验的记录,利用它可以达到事半功倍的效果。目前己有几十种设计模式可供参考……
注意:每一个JVM都有自己的类加载器。在WebSphere环境中会有多个应用程序服务器(JVM),也就是说JVM的类加载器是分开的,尽管它们运行在同一个物理机器上……
虚拟化和SOA之间是一种间接的、相辅相成的关系。也许在IT及业务转型中,两者的结合使用会发挥最大的优势。虚拟化有助于更快地显示部署基础设施的投资回报率(ROI)。
云计算的概念越来越流行,Amazon、Google和IBM是第一批将云计算引入公众视线的公司。云计算就是新的Web2.0,一种既有技术上的市场绽放。
安全对于许多的IT部门来说都是一个重要的问题之一,但是SOA安全问题完全是在另一个新的纬度上了。对于SOA为一个机构所带来的许多的好处,例如具有在许多不同的提供者和供应商的情况下混合和匹配服务。
最新更新
专家答疑
技巧
Ron Schmelzer,Jason Bloomberg
你认为通过遵循IT组织步骤可以演变为SOA吗?ZapThink公司明确SOA实行肯定是一个挑战——也不应被视为这一倡议应得到执行的一个步骤就是整个企业的基础……
Dana Gardner
您能解释什么是“私有云”吗,能否举例说明?这是供应商需要建立的基础吗?作为托管服务供应商和服务供应商寻求最有效和最强大的基础设施,作为他们的“云”支持能力……
Andrew Pollack
我们正在寻找一种从主机选择SOAP服务器的请求。我们希望制造一个远程程序呼叫(RPC)从CICS程序的SOAP服务器,其中进程请求,使错误或成功后的反应……