读书人

AXIOM入门(1)

发布时间: 2012-11-01 11:11:32 作者: rapoo

AXIOM入门(一)

????? AXIOM的全称为AXIs Object Model,最初是作为Apache Axis 2的XML对象模型开发的。但是后来变成了WS Commons Project的一部分,以便收益于Axis2外的其他项目。
Overview and Features
????? AXIOM是一个实现了延迟构造和拉解析(pull parsing)的轻量级XML解析器。延迟构造是AXIOM的最重要的特性之一,它可以实现对象在使用时才构造。而这个延迟构造的功能实现是基于标准的拉式解析器——StAX。
What is Pull Parsing?
??? 简单介绍一下“拉式解析”的概念。一个XML文档可以通过“拉式”或“推式”中任意一种方式来解析。“拉式”是目前流行的XML解析方式。传统的XML解析框架,例如SAX和DOM都是“推式”的,那意味着解析过程是由解析器本身来控制的。这样的实现方式看似不错,并且使用方便,但是在解析大型XML文档时效率就差了,因为整个文档对象模型都要生成在内存里。而“拉式解析”刚好颠倒了解析过程中的控制关系,解析器只对用户指定的部分进行解析(好比传送带上的一盘盘寿司,我只取我感兴趣的那盘,而不是把经过我面前的都拿下来,筛选后再把不感兴趣的放上去,留下想吃的那部分)。这样用户可以决定是保存或是抛弃解析器生成的事件。OM(对象模型)便是基于“拉式解析”的。
Working with AXIOM
要使用AXIOM需要下载它的API包。AXIOM开始是作为AXIS2的一部分出现的,但现在已经可以单独下载了,当然在AXIS2的发布包里还是可以找到它的。
Creating an AXIOM
我们可以通过三种方式创建一个AXIOM:Pull Event stream,Push Event stream或者由程序自动创建。本文主要演示通过第一种和第三种方式来构建一个AXIOM,它们也是创建AXIOM最常用的方式。
Creating an AXIOM from an Input Stream
下面的代码演示了如何从一个文件输入流来创建一个AXIOM:

?


Creating an AXIOM Programmatically

root.addChild(name);root.addChild(isbn);

?


*add()方法总是将新添加的子节点作为最后一个子节点加入到父节点中。
待续……

?

读书人网 >软件架构设计

热点推荐