利用JAXB进行xml和javabean之间转换
Xml和javabean之间的互相转换是开发中常常遇到的问题,今天小试了一下JAXB,感觉真是太方便了,这里特此记录(JDK6中加入了JAXB,不需要额外导出包) 利用JAXB实现XML与Javabean之间的相互转换的大致思想:利用XML的生成相应的XSD或者DTD,然后利用该XSD或DTD生成对应的javabeanClass和ObjectFactory,网上找个一个来描述了这个步骤:
JAXB(Java Architecture for XML Binding) 是一个业界的标准,是一项可以根据XML Schema产生Java类的技术。 DTD (Documnet Type Definition) 即文档类型定义,是一套关于标记符的语法规则。它是XML1.0版规格得一部分,是XML文件的验证机制,属于XML文件组成的一部分。 XSD(XML Schema Definition,XSD)XML Schema 定义,是基于 XML 的 DTD 替代者 开始转换 一. 利用XML生成相应XSD或者DTD 1.生成XSD可以通过一个online工具完成. 网址:http://www.freeformatter.com/xsd-generator.html#ad-output
二.利用生成的XSD或者DTD生成java类: 1. 命令行的方式(jdk6的支持) (a) XSD生成java: cmd--> cdxsd所在文件夹-->xjc –d . –p 包名 ./test.xsd (b) DTD生成java: cmd -->cd DTD所在文件夹 -->xjc -dtd –d . –p 包名 ./test.dtd 2. Eclipse下面生成java类,此方法只针对xsd,选中你的xsd,右键:
注意:XML里面最好不要包含value等敏感关键字,如果包含.先用别的名词替换,当生成javabean后再修改javabean. 三.利用生成javabean来进行xml和java之间的转换 a> XML到javabean
Java代码
Unmarshaller unmarshaller = JAXBContext.newInstance(Result.class).createUnmarshaller();
Result result = (Result) unmarshaller.unmarshal(reader);
unmarshal可以接收inputstream,read,file等.这里是通过string转换成reader
b> javabean到XML
Java代码
核心: 注册对象 和序列化 Marshaller mashaller = JAXBContext.newInstance(Result.class).createMarshaller(); mashaller.marshal(toxmlResult,new File("c:/outPut.xml")); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |