Java与XML的故事序:Jaxb和Jaxp

当年我刚开始使用Java的时候,有时候会考虑使用xml来存储数据,那个时候一般使用JAXP中的DOM或者SAX parser 包来CRUD xml文件。后来Web Service大行其道,WSDL, XSD这种很好格式化的文档,非常适合可以自动生成代码,于是出现了JAXB,通过annotation方便实现xml和Java class之间的转换。

JAXP (Java API for XML Processing) 中DOM(Document Object Model)把整个xml当成对象处理,非常方便随机读写,,不过如果xml文件很大的话那就可能内存占用成问题,SAX(Simple API for XML)把xml中所有的节点当成事件处理(org.xml.sax.helpers.DefaultHandler),那么顺序读取xml文件的时候比DOM就好很多,更快占用内存少。

JAXP中还有非常有用的2个成员,XSTL(Extensible Stylesheet Language Transformations)在Java中实现XML与其他格式的转换和Stax(Streaming API for XML)类似SAX,不同是按流方式处理XML文件,同时主动拉取数据而不是被动等待event到来。

JAXP的API可以说是对XML的直接处理低层次API,对于WebService以及ORM服务来说,直接使用还是太过复杂,为了进一步的简化程序员的工作,JAXB (Java Architecture for XML Binding) 出现了,作为特殊的API (属于javax.xml.bind的一部分) ,利用XML文档的XML SchemaDefinition(XSD),在Java中使用annotations实现XML 文档和java 对象模型转映射。

接下来的系列中,主要是写写自己如何通过JAXB实现XML与Java对象的转换。

经历一种身体下了地狱,眼睛进入天堂,灵魂归入故里。

Java与XML的故事序:Jaxb和Jaxp

相关文章:

你感兴趣的文章:

标签云: