利用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



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


二.利用生成的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代码
  1. Filefile=newFile("C:/ML_OA_DATA.xml");
  2. StringxmlStr=FileUtils.readFileToString(file,"UTF-8");
  3. Readerreader=newStringReader(xmlStr);
  4. Unmarshallerunmarshaller=JAXBContext.newInstance(Result.class).createUnmarshaller();
  5. Resultresult=(Result)unmarshaller.unmarshal(reader);
  6. List<Result.DocInfo.Field>list=result.getDocInfo().getField();
  7. List<Attachment>eFileList=result.getAttachments().getAttachment();
  8. for(Attachmentefile:eFileList){
  9. System.out.println(efile.getFtpdir());
  10. }

核心的就是这2句,1 注册对象,2反序列化
Unmarshaller unmarshaller = JAXBContext.newInstance(Result.class).createUnmarshaller();
Result result = (Result) unmarshaller.unmarshal(reader);
unmarshal可以接收inputstream,read,file等.这里是通过string转换成reader
b> javabean到XML

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念
xml文件介绍及使用
xml编程(一)-xml语法
XML文件结构和基本语法
第2章 包装类
XML入门的常见问题(二)
Java对象的强、软、弱和虚引用
JS解析XML文件和XML字符串详解
java中枚举的详细使用介绍
了解Xml格式
XML入门的常见问题(四)
深入SQLite多线程的使用总结详解
PlayFramework完整实现一个APP(一)
XML和YAML的使用方法
XML轻松学习总节篇