全面解析java xml分析技术

全面解析java xml分析技术

ID:15569207

大小:44.00 KB

页数:15页

时间:2018-08-04

全面解析java xml分析技术_第1页
全面解析java xml分析技术_第2页
全面解析java xml分析技术_第3页
全面解析java xml分析技术_第4页
全面解析java xml分析技术_第5页
资源描述:

《全面解析java xml分析技术》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、全面解析JavaXML分析技术Java6.0新特性之StAX--全面解析JavaXML分析技术文章分类:Java编程作者:臧圩人(zangweiren)网址:http://zangweiren.javaeye.com>>>转载请注明出处!<<<野马(Mustang,Java6.0代号)相比老虎(Tiger,Java5.0代号)来说,从性能的提升、脚本语言(Javascript、JRuby、Groovy)的支持、对java.io.File的扩展到桌面应用的增强等各个方面,本领着实大了不少。Java6.0对XML

2、支持的新特性有许多方面。比如StAX、针对XML-Web服务的Java架构(JAX-WS)2.0、针对XML绑定的API(JAXB)2.0、XML数字签名API,甚至还支持SQL:2003'XML'数据类型。在这一篇文章中我们将要介绍的是StAX技术,因为它在我们的开发中将被使用地更加频繁。StAX是StreamingAPIforXML的缩写,是一种针对XML的流式拉分析API。关于对XML进行分析(或解析)的技术,大家一定都不陌生了。在Java6.0之前,就已经有四种:DOM:DocumentObjectM

3、odelSAX:SimpleAPIforXMLJDOM:Java-basedDocumentObjectModelDOM4J:DocumentObjectModelforJava关于它们的解析原理,以及性能和优缺点,我会在本文的结尾做一个简要的介绍。这篇文章中,我们主要说说StAX这种新的解析方式。首先我们来搞清楚两个概念:推分析和拉分析。在程序中访问和操作XML文件一般有两种模型:DOM(文档对象模型)和流模型。它们的优缺点如下:引用DOM优点:允许编辑和更新XML文档,可以随机访问文档中的数据,可以使用X

4、Path(XMLPathLanguage,是一种从XML文档中搜索节点的查询语言)查询。DOM缺点:需要一次性加载整个文档到内存中,对于大型文档,会造成性能问题。引用流模型优点:对XML文件的访问采用流的概念,在任何时候内存中只有当前节点,解决了DOM的性能问题。流模型缺点:是只读的,并且只能向前,不能在文档中执行向后导航操作。关于什么是DOM,文章结尾处会有介绍。这里我们简单说一下流:它是一个连续的字节序列,可以理解为不停地从源头向目标搬运着字节的特殊对象。让我们回到主题。流模型每次迭代XML文档中的一个节

5、点,适合于处理较大的文档,所耗内存空间小。它有两种变体--“推”模型和“拉”模型。引用推模型:就是我们常说的SAX,它是一种靠事件驱动的模型。当它每发现一个节点就引发一个事件,而我们需要编写这些事件的处理程序。这样的做法很麻烦,且不灵活。引用拉模型:在遍历文档时,会把感兴趣的部分从读取器中拉出,不需要引发事件,允许我们选择性地处理节点。这大大提高了灵活性,以及整体效率。到此,我们就弄明白了“推分析”和“拉分析”的概念:引用基于流模型中推模型的分析方式称为推分析;基于流模型中拉模型的分析方式就称为拉分析。StA

6、X就是一种拉分析式的XML解析技术。它也支持对XML文件的生成操作,但是这篇文章里我们只介绍有关解析的知识。从一开始,JAXP(JavaAPIforXMLProcessing)就提供了两种方法来处理XML:DOM和SAX。StAX是一种面向流的新方法,最终版本于2004年3月发布,并成为JAXP1.4(包含在Java6.0中)的一部分。StAX的实现使用了JWSDP(JavaWebServicesDevelopmentPack)1.6,并结合了SJSXP(SunJavaSystemXMLStreamingPa

7、rser,位于javax.xml.stream.*包中)。JWSDP是用来开发WebServices、Web应用程序以及Java应用(主要是XML处理)的开发包。它包含的JavaAPI有:JAXP:JavaAPIforXMLProcessingJAXB:JavaArchitectureforXMLBindingJAX-RPC:JavaAPIforXML-basedRemoteProcedureCallsJAX-WS:JavaAPIforXMLWebServicesSAAJ:SOAPwithAttachment

8、sAPIforJavaJAXR:JavaAPIforXMLRegistriesWebServicesRegistryJWSDP的早期版本中还包括:JavaServletJSP:JavaServerPagesJSF:JavaServerFaces现在,JWSDP已经被GlassFish所替代。StAX包括两套处理XML的API,分别提供了不同程度的抽象。它们是:基于指针的API和基于迭代器的API。我

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。