Java与XML的故事序:Jaxb和Jaxp

本文介绍了Java处理XML的主要技术,包括JAXP中的DOM和SAX解析器、XSLT转换及StAX流式处理等,并重点讲解了JAXB如何简化XML与Java对象之间的映射。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

当年我刚开始使用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 Schema Definition(XSD),在Java中使用 annotations实现XML 文档和 java 对象模型转映射。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值