JAXB实现XML和Java对象绑定
2007-09-06 13:20 作者:陈光耀 来源:csdn
[摘要] 本文介绍了如何使用JAXB实现XML和Java对象绑定,通过XML Schema生成Java类,实现从xml数据文件生成Java对象树,以及将Java对象序列化到XML文件中。
[关键字] JAXB;XML;java对象绑定
[关键字] JAXB;XML;java对象绑定
JAXB(Java Architecture for XML Binding, Java XML绑定架构)是一项可以根据XML Schema产生Java类的技术。该技术可以提供将XML实例文档反向生成Java对象树的方法,并能将Java对象树的内容重新写到XML实例文档。从另一方面来讲,JAXB提供了快速而简便的方法将XML模式绑定到Java表示,从而使得Java开发者在Java应用程序中能方便加载XML数据,并以XML文件作为数据存储方式。
JAXB目前最新版本为2.1.3, 大家可以到 https://jaxb.dev.java.net/ 网站去下载最新的开源版本。
下面以一个业务字典的例子来说明JAXB的使用。
我们的目的是将保存代码值和实际名称对应关系的业务字典数据(如“M”对应“男”,“F”对应“女”等)放在xml文件中,由java程序在运行的时候加载使用,同时也能将程序中生成的新的业务字典数据保存在xml文件中。
具体实现步骤如下:
1.设计出xml文件存储的格式(dict.xml), 如下:
JAXB目前最新版本为2.1.3, 大家可以到 https://jaxb.dev.java.net/ 网站去下载最新的开源版本。
下面以一个业务字典的例子来说明JAXB的使用。
我们的目的是将保存代码值和实际名称对应关系的业务字典数据(如“M”对应“男”,“F”对应“女”等)放在xml文件中,由java程序在运行的时候加载使用,同时也能将程序中生成的新的业务字典数据保存在xml文件中。
具体实现步骤如下:
1.设计出xml文件存储的格式(dict.xml), 如下:
说明: 本业务业务字典支持带层次的业务字典,如国家-省-市的业务字典。
2. 定出业务字典XML文档的Schema,dict.xsd, 如下:
2. 定出业务字典XML文档的Schema,dict.xsd, 如下:
3.使用JAXB将Schema生成用于xml数据解析的Java类。
到jaxb网站上下载Jaxb的最新安装包,如JAXB RI 2.1.3, 本文使用的是JAXB RI 2.0.5版本。下载后是一个安装用的jar文件,如JAXB2_20070413.jar,将其copy到d:/jaxb2目录下,运行
java -jar JAXB2_20070413.jar
将其解压,解压后的目录结构如下图:
4@5l@4@11@9@11@9@5xe" filled="f" stroked="f" coordsize="21600,21600" o:spt="75" o:preferrelative="t">
到jaxb网站上下载Jaxb的最新安装包,如JAXB RI 2.1.3, 本文使用的是JAXB RI 2.0.5版本。下载后是一个安装用的jar文件,如JAXB2_20070413.jar,将其copy到d:/jaxb2目录下,运行
java -jar JAXB2_20070413.jar
将其解压,解压后的目录结构如下图:
4@5l@4@11@9@11@9@5xe" filled="f" stroked="f" coordsize="21600,21600" o:spt="75" o:preferrelative="t">
将xsd文件拷贝到d:/temp目录下,编译schema文件:
cd d:/jaxb2/bin
d:/jaxb2/bin>xjc -d d:/temp/src -p com.primeton.governor.dict.xmlloader d:/temp/dict.xsd
(注:xjc.bat 即为 java -jar jaxb-xjc.jar %*)
在d:/temp/src目录下生成Java代码, 如下图所示:
cd d:/jaxb2/bin
d:/jaxb2/bin>xjc -d d:/temp/src -p com.primeton.governor.dict.xmlloader d:/temp/dict.xsd
(注:xjc.bat 即为 java -jar jaxb-xjc.jar %*)
在d:/temp/src目录下生成Java代码, 如下图所示:
4.使用生成的类加载业务字典数据,假设数据dict.xml放在d:/temp目录下.
5. 保存业务字典的内存对象到xml文件中:
生成的xml文件结果为: