失效链接处理 |
JAXB简易教程 PDF 下载
本站整理下载:
相关截图:
主要内容:
1前言
1.1目的
本文档适合介绍JAXB的使用,也可作为JAXB的入门之用
1.2范围
使用者:开发人员,系统维护人员
2开发指南
JAXB是java对象和XML对象进行映射的工具,也是J2EE的一个规范,它可以很方便的把一个java对象映射为一个XML对象,也可以把一个XML对象映射为一个java对象,它的缺点是XML必须定义有DTD或者XSD,如果没有的话,建议使用XStream.
2.1导入JAXB
可以到https://jaxb.dev.java.net/下载JAXB的最新稳定版本。
2.2使用JAXB
1. 准备DTD或者XSD
一次可以使用多个DTD或者XSD,但是前提是要求这些DTD不能有命名冲突.
2. 准备JAXB描述文件
JAXB描述文件描述生成的Java对象的信息,比如package名称、类的名称等,大多数情况下,描述文件可以非常简单,但是有些时候不能满足需要,这时请参考进阶篇,简单的JAXB描述文件如下
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<jaxb:bindings version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb">
<jaxb:bindings schemaLocation="spring-beans-2_0.xsd"
node="/xs:schema">
<jaxb:schemaBindings
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb">
<jaxb:package name="com.huateng.xsdgenerated.spring" />
<jaxb:nameXmlTransform>
<jaxb:elementName prefix="Parsed" />
<jaxb:typeName prefix="Parsed" />
<jaxb:modelGroupName prefix="Parsed" />
<jaxb:anonymousTypeName prefix="Parsed" />
</jaxb:nameXmlTransform>
</jaxb:schemaBindings>
</jaxb:bindings>
</jaxb:bindings>
4. 生成java对象
String projectPath = new File("").getAbsolutePath();
//xsd File
String xsdFilePath = projectPath +"\\src\\spring-beans-2_0.xsd";
//生成的Java文件路径
String destDir = projectPath+"\\src";
//JAXB描述文件
String jaxbFile =
projectPath+"\\src\\jaxb_class_spring.xml";
List<String> argsList = new ArrayList<String>();
//一次性可以添加多个XSD File
argsList.add(xsdFilePath);
//添加生成的Java文件路径
argsList.add("-d");
argsList.add(destDir);
//添加JAXB描述文件
argsList.add("-b");
argsList.add(jaxbFile);
//生成代码
String[] args = new String[argsList.size()];
XJCFacade.main(argsList.toArray(args));
5.查看生成的代码
我们在destDir目录下就可以看到生成的Java代码
2.3Xml文件转成Java对象
String content = ……… //XML文件的内容
JAXBContext jaxbContext = JAXBContext.newInstance(“com.huateng.xsdgenerated.spring“,
this.class.getClassLoader());
StreamSource streamSource = new StreamSource(new StringReader(
content));
Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
com.huateng.xsdgenerated.spring.ParsedBeans parsedBeans =(com.huateng.xsdgenerated.spring.ParsedBeans) unmarshaller.unmarshal(streamSource);
2.4Java对象转成Xml文件
com.huateng.xsdgenerated.spring.ParsedBeans parsedBeans = ……// Java对象
JAXBContext jaxbContext = JAXBContext.newInstance(“com.huateng.xsdgenerated.spring“,
this.class. getClassLoader());
Marshaller marshaller = jaxbContext.createMarshaller();
// XML文件格式化输出
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT,
Boolean.TRUE);
String xmlFile = ……; //xmlfileP
marshaller.marshal(parsedBeans, new FileOutputStream(xmlFile));
|