您的位置:首页 > 编程语言 > Java开发

转:利用JAXB进行xml和javabean之间转换

2016-06-16 12:56 633 查看
转自:http://blog.csdn.net/luyuwww/article/details/17272213


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

2.  生成DTD,通过一个java小工具:http://sourceforge.net/projects/xml2dtd/


二. 利用生成的XSD或者DTD生成java类:

1. 命令行的方式(jdk6的支持)

(a) XSD生成java: cmd–> cd xsd所在文件夹–> 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代码 收藏代码

File file = new File(“C:/ML_OA_DATA.xml”);

String xmlStr = FileUtils.readFileToString(file , “UTF-8”);

Reader reader = new StringReader(xmlStr);

Unmarshaller unmarshaller = JAXBContext.newInstance(Result.class).createUnmarshaller();

Result result = (Result) unmarshaller.unmarshal(reader);

List
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  xml javabean xsd dtd