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反序列化
相关推荐
总结,XML与JavaBean之间的转换是Java开发中的常见操作,理解XML的大小写规则、特殊符号处理和CDATA的使用对于编写健壮的XML处理代码至关重要。掌握这些知识可以帮助开发者更有效地在XML和Java对象之间进行数据交换...
这个类可能包含静态方法,如`beanToXml(JavaBean bean)`用于将JavaBean转换为XML字符串,以及`xmlToBean(String xml)`用于将XML字符串反向转换回JavaBean。使用这样的工具类可以使代码更加简洁,提高代码复用性。 ...
总结起来,XML与JavaBean之间的转换涉及多种技术和库,如JAXB、DOM、SAX以及XMLBeans等。理解这些工具的使用和优缺点,能帮助开发者根据具体需求选择合适的方法进行数据交换。在实际开发中,合理利用这些技术可以...
Java Architecture for XML Binding (JAXB) 是Java平台上的一个标准技术,它允许在Java对象(如JavaBeans)和XML文档之间进行互相转换。这个过程被称为对象绑定,它简化了XML数据的处理,使得开发人员无需手动编写...
以上就是关于XML和JavaBean之间转换的基本概念、技术和实现步骤。理解这些知识对于处理Java中的数据序列化和反序列化至关重要。在实际项目中,我们可能需要处理更复杂的XML结构和嵌套的Bean,但核心思想是相同的。
它允许开发者将XML Schema定义的数据结构直接映射到Java类,从而方便地在XML和Java对象之间进行转换。JAXB简化了XML数据的处理,使得XML的读写操作变得更加直观和高效。 ### JAXB工作原理 JAXB的核心概念是两个主要...
本篇将深入探讨JAXB2在实现JavaBean到XML以及XML到JavaBean转换中的原理和步骤。 首先,我们需要了解JAXB的基本概念。JAXB是Java平台的标准之一,它定义了如何将Java类和XML Schema进行绑定,从而实现对象和XML之间...
Java内置的JAXB(Java Architecture for XML Binding)框架提供了JavaBean和XML之间的转换功能。JAXB允许开发者通过简单的注解将Java类映射到XML schema,然后自动完成序列化和反序列化过程。 **JAXB的基本概念:**...
JavaBean和XML之间的转换是Java开发中常见的数据交换方式,特别是在处理配置文件或者进行数据持久化时。这两种格式都有其独特的优势:JavaBean是面向对象的,方便编程,而XML则是一种通用的数据交换格式,易于人阅读...
在Java开发中,XML(可扩展标记语言)和Bean之间的互相转换是一项常见的任务,尤其是在处理配置文件、数据交换或者序列化场景中。本篇将详细阐述XML与Bean之间的转换过程,以及相关的Java技术。 首先,XML是一种...
将JavaBean转换为XML是常见的数据序列化方式,有助于在不同系统间共享和存储对象状态。 在Java中,有多种方法可以实现JavaBean到XML的转换,包括使用API如JAXB(Java Architecture for XML Binding)、DOM...
**工具** 如Apache Commons BeanUtils库也可以用来在JavaBean和Map对象之间进行转换,虽然它不直接处理XML,但可以作为进一步转换的基础。此外,一些IDE如Eclipse和IntelliJ IDEA提供了内置的功能来自动生成JavaBean...
StAX的`XMLStreamReader`和`XMLStreamWriter`接口可以用于将JavaBean转换为XML和反之。 5. **XStream库**:XStream是一个轻量级的Java库,它可以将任何Java对象序列化为XML,反之亦然。XStream使用简单的注解,使得...
JAXB (Java Architecture for XML Binding) 是Java平台上的一个标准,它允许开发人员将XML文档与Java对象之间进行绑定,从而实现XML数据的序列化和反序列化。Jaxb2是JAXB的一个版本,从JDK 1.6开始成为其内置组件,...
通过定义符合JavaBean规范的类,并利用JAXB的序列化和反序列化功能,我们可以方便地在Java对象和XML文档之间进行数据转换。这在处理Web服务、配置文件或跨平台数据交换时非常有用。在实际开发中,确保对这些基本概念...
在Java开发中,有时我们需要将XML转换为JSON,反之亦然,或者将这些格式与JavaBean对象进行互换,以便于数据处理和传输。本篇文章将深入探讨XML、JSON与JavaBean之间的转换方法。 首先,我们来看XML和JSON的特性。...
在IT行业中,数据交换和序列化是至关重要的环节,json、JavaBean和XML作为常见的数据表示格式,它们之间的转换需求频繁出现。这篇博客主要探讨了几种用于这些格式互转的工具,下面将详细介绍这些工具及其使用方法。 ...