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
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<Result.DocInfo.Field> list = result.getDocInfo().getField();
List<Attachment> eFileList = result.getAttachments().getAttachment();
for (Attachment efile : eFileList) {
System.out.println(efile.getFtpdir());
}
核心的就是这2句,1 注册对象,2反序列化
相关推荐
使用jaxb 实现xml——bean互转
使用jaxb生成XML例子,含有例子和注解解析
JAXB(Java Architecture for XML Binding) 是一个业界的标准,是一项可以根据XML Schema产生Java类的技术。JAXB与xml相互转换实例。
使用woodstax+jaxb进行xml的流解析,包括解析类,解析文件,所需jar包,带注解的实体类。提高了解析效率,减少了内存消耗。
xml转javaBean,javaBean转xml,xml标签大小写问题,CDATA的生成,以及对xml特殊符号的处理
jaxb将xml转换为对象或将对象转换为xml。测试通过。
使用JAXB进行xml和bean互转,其中为一个简单的demo,包含转换工具类和一个简单的bean的定义,如果有多级节点需要定义多个bean,将子节点作为一个属性放置到主节点类中
教你使用jaxb解析xml,介绍了主要的注解,以及核心api
JAXB注解 java 关于xml的注解,自动生成xml文件
jaxb 将xml里面的对象转化为一个个类,大大地简化了xml的相关操作。unmarshal marshal
JAXB教程 JAXB JAXB插件 里面有很详细的使用说明,看了就知道,JAXB解析XML真的很好用
java 使用 JAXB 将xml转换为 bean 包含xml和dto和读取文件的util类
JAXB工具类 xml转为java对象 java对象转为xml ,本人亲测,可以使用!!!
NULL 博文链接:https://xiongpan0807.iteye.com/blog/1832124
用JAXB生成一个XML文档,一个XML 模式(Schema)用XML语法表达了一个XML文档的结构。J2EE的开发者也许会需要一个符合XML模式的XML文档。Java XML绑定架构(JAXB)提供了一个绑定编译器,xjc,来从一个XML模式中生成Java类...
jaxb解析生成xml例子
jaxb xml 转map
jaxb XMl和BEAN互转实例(内含jar包),将jaxb封装成一个Util工具类,只需要通过对BEAN进行简单的注解就可以直接实现xml和bean之间的互转
主要介绍了java利用JAXB实现对象和xml互相转换方法与实例详解,需要的朋友可以参考下