1、 SAX Simple API for XML, http://www.saxproject.org 这个是最简单的API,应该熟悉或者了解。
SAX使用回调模型与用户代码进行交互,与面向对象程序开发者的基本思想有点不同,被称为基于事件的编程模型。
2、 DOM Document Object Model 这个API在很多方面对SAX是一种补充。
什么时候选择DOM?随机访问文档或者访问元素的兄弟节点时,DOM有优势。如果修改XML,DOM也比较好。
3、 JAXP Java API for XML Processing
使用JAXP,可以比直接使用DOM或者SAX更容易实现代码的厂商无关性。任何打算使用JAXP的人,至少需要熟悉如何使用SAX和DOM。JAXP并不是要取代SAX或DOM,它仅仅是为了完善它们而产生的。
4、 StAX Streaming API For XML
SAX注重于代码,通过预先定义的接口,把各种事件作为解析器遍历XML文档。
DOM是在内存中创建一个结构树,然后将此结构树作为整体返回给代码。
StAX不需要实现任何特定接口,而SAX则必须要实现特定的接口。因此,与相应的SAX代码相比,使用基于拉式解析更简洁,更容易读。
5、 JDOM 是两位著名的 Java 开发人员兼作者,Brett Mclaughlin 和 Jason Hunter 的创作成果, 2000 年初在类似于Apache协议的许可下,JDOM 作为一个开放源代码项目正式开始研发,JDOM 作为一个开放源代码项目正式开始了。
JDOM提供了在JAVA中通过树结构访问XML文档的方法,从这个意义上来看,与DOM很类似。但是,JDOM是专门为JAVA而设计的,许多方面比DOM要直观些。JDOM与DOM不同的基本原则在于:JDOM是由具体类组成的API,这使得在JDOM中创建Document对象的代码比相应的DOM代码要简单得多。因为JDOM不需要创建DocumentBuilderFactory对象或者DocumentBuilder对象。
注意:
JDOM不是一个XML解析器,它通过生成器类来使用外部解析器。
JDOM不是DOM,也不是DOM的封装,也不提供DOM的扩展。两者在技术上没有什么联系。
6、 dom4j 和JDOM一样,是DOM文档对象模型的一种JAVA规范,仅适用于JAVA,而且不受DOM中性语言约束。http://www.dom4j.org
dom4j和JDOM的API有一部分很类似,但是两者也有区别:dom4j设计了一系列的核心接口,而JDOM是面向类的。就是说,对dom4j接口不同类型的实现,就可以提供不同类型的功能。
7、 JAXB Java Architecture for XML Binding 针对XML绑定的JAVA体系结构
数据绑定:本质上与DOM,JDOM和dom4j等文档对象模型API类似,定义了XML文档和JAVA对象树之间的关联关系,这里称为“绑定”。利用绑定可以根据JAVA对象树生成XML文档,也可以根据XML文档生成JAVA对象树。
8、 XQuery 类似于SQL(Structured Query Language,结构化查询语言),是一种从XML文档中提取数据的查询语言http://www.xquery.com