AXIOM
AXIOM是一个实现了延迟构造和拉(pull parsing)解析的轻量级的xml解析器
http://reeboo.iteye.com/blog/317391
http://reeboo.iteye.com/blog/466472
以拉方式构建 AXIOM 树
除 了 AXIOM 之外,Axis2 还对 Axis 进行了另一个改进。原始的 Axis 使用标准的推式 (SAX) 解析器进行 XML 处理,而 Axis2 使用拉式 (StAX) 解析器。在使用推方式的情况下,由解析器来控制解析操作,需要向解析器提供要解析的文档和处理程序。然后,在对输入文档进行处理的时候,它使用代码中的处 理程序作为回调。处理程序代码可以使用这些回调中传递的信息,但是不能影响解析过程(除了引发一个异常)。相反,在使用拉方式的情况下,解析器实际上是一 个高效的迭代器,可以根据需要对文档中的不同部分进行遍历。
推方式和拉方式分别具有各自的用途,但是对于处理包含逻辑上独立的不同部分的 XML(如 SOAP),使用拉方式更有优势。。使用拉式解析器,处理文档某一部分的代码仅解析它所需的部分,然后由解析器进行接下来的文档处理。
AXIOM 构建于 StAX 拉式解析器接口的基础之上。AXIOM 提供了一种可以按需扩展的虚拟文档模型,仅构建客户端应用程序所请求的树结构文档模型表示。这种虚拟的文档模型工作于 XML 文档的元素级。当解析器报告元素开始标记时创建元素表示,但是该元素的初始形式仅仅只是一个壳,其中保存了对解析器的引用。如果应用程序需要获取元素内容 的细节信息,它只需要通过调用接口(如 org.apache.axiom.om.OMContainer.getChildren()
方法)的方法,就可以请求相应的信息。然后,在对这个方法调用的响应中,解析器将构建该元素的子内容。
因 为解析器按照文档顺序(与 XML 文档文本中项目的出现顺序相同)传递数据,所以 AXIOM 所实现的按需构造需要某种灵活的处理方法。例如,通常有多个元素处于不完整的(正在构建的过程中)状态,但是这些元素都必须位于继承结构的一条直线中。如 果从根元素在顶端的标准 XML 树关系图的角度来看,不完整的元素将始终位于该树右侧的直线中。随着应用程序请求更多的数据,该树逐渐向右扩充,并且首先完成顶端的元素。
AXIOM的更多相关文章
- 转 用 AXIOM 促进 XML 处理
转自:http://www.ibm.com/developerworks/cn/xml/x-axiom/ AXIOM 还不是另一种对象模型.它有着明确的设计目标:大幅提升 Apache 下一代 SOA ...
- AXIOM解析XML 详细原理
转自:http://warlaze.blog.sohu.com/58477971.html AXIOM Axis对象模型(AXIOM)是一个XML对象模型,设计用于提高XML处理期间的内存的使用率和性 ...
- Axiom3D学习日记 0.Axiom基础知识
Axiom 3D Engine An open-source, cross-platform, managed 3D rendering engine for DirectX, XNA and Ope ...
- 开源摄影机:Axiom Camera
一般情况下只有软件才有开源这个概念.这会儿发现了个很厉害的开源的产品:开源摄影机. 我还是第一次听说摄影机也可以开源.于是去该产品的官方网站了解了一下相关信息. 官网:http://axiom.ape ...
- 2.2 Apache Axis2 快速学习手册之 AXIOM 构建 Web Service
和上一篇的POJO 部署相比主要是services.xml 中配置的消息接受处理器类不一样和Java 类中写法不一样. 使用AXIOM构建服务 样例源码路径: C:\Apps\axis2\axis2- ...
- 3D引擎Axiom的选择与学习.
经过前面针对OpenGL的一些特性的学习,越发觉得要学的更多,相关如LOD,各种阴影实现,场景管理如BSP与Octree等以及还没听过的各种的实现.有感自学的进度太慢,并且在做一些小DEMO时,心中不 ...
- [Axiom 3D]3.SceneManager场景管理器
首先看看Axiom.Core命名空间下public abstract class SceneManager : DisposableObject A SceneManager organizes th ...
- [Axiom 3D]1.初识Axiom
1. 简介 The Axiom 3D Rendering Engine is a fully object oriented 3D graphics engine using C# and the . ...
- [Axiom 3D]2.Axiom 基本概念
1.Root Root 对象是一个 Ogre 应用程序的主入口点.因为它是整个 Ogre 引擎的外观(Façade )类(请参考设计模式中的外观模式),所以在这里作为第一个被列出来的类,它提供了方便的 ...
随机推荐
- Java 类的高级特征2
1. static 关键字 static,静态的,可以用来属性.方法.*代码块(或初始化块).*内部类 (1) static修饰属性(类变量): 1.由类创建的所有的对象,都共用这一个属性 2.当其 ...
- Android设计画面中有EditText时取消启动时自动获得焦点调用系统输入法的方法
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools= ...
- MBProgressHUD.h file not found
MBProgressHUD框架,怎么我导入MBProgressHUD+MJ.h会报错.(即MBProgressHUD+MJ根本不存在),我看其他人的视屏又可以导入 MBProgressHUD.h fi ...
- 关于查询oracle in >1000 的讨论
https://q.cnblogs.com/q/88538/
- 标签navtab
创建navtab 创建一个navtab有以下两种方式: 1.Data属性:DOM添加属性data-toggle="navtab"后,单击触发. a链接示例: <a href= ...
- SharePoint开发 - 使用Session(代码修改webconfig)
博客地址 http://blog.csdn.net/foxdave SharePoint启用Session可以使用Powershell,戳这里:可以修改webconfig. 本篇叙述的重点是通过fea ...
- git——学习笔记(一)
http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/0013745374151782e ...
- lightoj1082 线段树
//Accepted 5596 KB 396 ms //线段树求区间最小值 #include <cstdio> #include <cstring> #include < ...
- 重拾java系列一java基础(4)
本章主要回顾一些类的相关知识: (1)static: static 静态的: 属于类的资源, 使用类名访问. 静态属性: 只有一份的变量 静态方法: 是属于类方法, 可以使用类名直接访问. 静态方 ...
- druid简介
Druid首先是一个数据库连接池,但它不仅仅是一个数据库连接池,它还包含一个ProxyDriver,一系列内置的JDBC组件库,一个SQL Parser. 支持的数据库 Druid支持所有JDBC兼容 ...