读书人

JAXB-容易应用(一)

发布时间: 2012-10-07 17:28:51 作者: rapoo

JAXB--简单应用(一)

?

一、简介

1、概念是什么:(Java Architecture for XML Binding) 是一个业界的标准,即是一项可以根据XML Schema产生Java类的技术。该过程中,JAXB也提供了将XML实例文档反向生成Java对象树的方法,并能将Java对象树的内容重新写到XML实例文档。有多种实现。

?

2、JAXB中有什么:包含“xjc”工具和一个“schemagen”工具。?

“xjc”工具可以用来将XML模式或其他类型模式文件(Java 1.6试验性地支持RELAX NG,DTD以及WSDL)转换为Java类。Java类使用javax.xml.bind.annotation包下的Java 标注,例如@XmlRootElement和@XmlElement。XML列表序列表示为java.util.List类型的属性, 通过JAXBContext可以创建Marshallers(将Java对象转换成XML)和Unmarshallers(将XML解析为Java对象)。

另外的“schemagen”工具,能够执行“xjc”的反向操作,通过一组标注的Java类创建一个XML模式。?

?

二、依赖

JDK5以下开发需要的jar包:activation.jar、jaxb-api.jar、 jaxb-impl.jar、 jsr173-api.jar;

如果是基于JDK6以上版本已经集成JAXB2的JAR,在目录{JDK_HOME}/jre/lib/rt.jar中。

?

三、简单应用

?

? 第一步:创建要转化的java对象,该对象需要使用相关注解注释各字段(标注在get方法上)。

?

?

第二步:编组(java对象转xml),提供多种编组目的地,以下只介绍两种,一种编组到文件,一种编组到控制台。

?

?

?

第三步:解组(xml转java对象),直接从文件解组xml成java对象。

?

?

import java.io.File;import javax.xml.bind.JAXBContext;import javax.xml.bind.JAXBException;import javax.xml.bind.Unmarshaller;//Unmarshallerpublic class Xml2ObjectDemo {public static void main(String[] args) {try {File file = new File("C:\\file.xml");JAXBContext jaxbContext = JAXBContext.newInstance(Customer.class);Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();Customer customer = (Customer) jaxbUnmarshaller.unmarshal(file);System.out.println(customer);} catch (JAXBException e) {e.printStackTrace();}}}
?

注:以上代码在jdk1.6中运行正常,jdk1.5需要其它依赖包。

?

?

参考文档:

http://blog.csdn.net/ruzhefeng/article/details/6560449JAXB2简介及特性使用总结

?http://www.ibm.com/developerworks/cn/xml/x-pracdb1.html实用数据绑定: 涉入现实世界

?http://www.ibm.com/developerworks/cn/xml/x-pracdb3.html实用数据绑定: 深入考察 JAXB,第 2 部分

?

?http://jaxb.java.net/guide/

?http://jaxb.java.net/tutorial/

?

1 楼 leeya 2012-05-04 感谢楼主 很好的东西 新特性用注解的方式还不是很习惯 先玩玩。
想问下 jaxb能不依赖注解吗 而且jdk版本如果是 1.5或者更低的 该怎么处理。 2 楼 zhdycn 2012-06-21 LZ 最近用到 jaxb请教一个问题

xml to Object 上的问题

xml: <param>
<txt>3</txt>
</param>
<param>
<txt>6</txt>
</param>
他们在同一个xml中 没有ROOT元素是否可以映射。。这个我不明白怎么映射 。

读书人网 >编程

热点推荐