转载自http://qmylove.spaces.live.com
Jaxb在J2EETurorial中有第16章有专门论述
Jaxb的Eclipse的插件https://jaxb-workshop.dev.java.net/plugins/eclipse/xjc-plugin.html
可以方便的从schema生成java类,而不是像下文第三步中那样用命令行。
开发步骤
1. 下载例如 jaxb-2_1_8.zip从 https://jaxb.dev.java.net/2.1.8/ 解压,目录结构如下
clip_image002
2. 定义xml文件的schema,用于定义xml文件的格式规范。本例为GolfCountryClub.xsd
一个最简单的schema
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.example.org/GolfCountryClub"
xmlns:tns="http://www.example.org/GolfCountryClub">
<element name="GolfCountryClub">
<complexType>
<sequence>
<element name="GolfCourse" type="tns:GolfCourseType"
maxOccurs="unbounded" minOccurs="1">
</element>
</sequence>
</complexType>
</element>
<complexType name="GolfCourseType">
<sequence>
<element name="Name" type="string">
</element>
</sequence>
<attribute name="NumberOfHoles" type="positiveInteger"
fixed="18">
</attribute>
</complexType>
</schema>
3. 运行xjc.bat或者xjc.sh脚本生成在schema中定义的java对象。
例如:解析GolfCountryClub.xsd并使用-p参数来指定包名
clip_image004
注:同样,可以使用schemagen.bat工具来根据生成的Java类生成schema,例如
clip_image006
生成的schema1.xsd内容如下,和我们原schema基本一致。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<xs:schema version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="GolfCountryClub">
<xs:complexType>
<xs:sequence>
<xs:element name="GolfCourse" type="GolfCourseType" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="GolfCourseType">
<xs:sequence>
<xs:element name="Name" type="xs:string"/>
</xs:sequence>
<xs:attribute name="NumberOfHoles" type="xs:positiveInteger"/>
</xs:complexType>
</xs:schema>
4. 使用javax.xml.bind.JAXB类的marshal静态方法来根据java对象生成xml文件。
新建一个空的Flex项目,将3中生成的类复制到java 源代码目录中。并将解压后lib文件夹下的jar文件复制到WEB-INFO/lib中。结构如图。
clip_image008
我们的目标是生成一个最简单的xml
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns2:GolfCountryClub
xmlns:ns2="http://www.example.org/GolfCountryClub">
<GolfCourse NumberOfHoles="18">
<Name>The best course</Name>
</GolfCourse>
</ns2:GolfCountryClub>
下面我们新建一个类来生成上面的xml文档
package com.ibm.levin;
import java.io.StringWriter;
import java.io.Writer;
import java.math.BigInteger;
import java.util.ArrayList;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.Marshaller;
import com.ibm.levin.*;
public class CreateXML {
public static void main(String[] args) {
ObjectFactory factory = new ObjectFactory();
GolfCountryClub gcc = factory.createGolfCountryClub();
GolfCourseType gctype = factory.createGolfCourseType();
gctype.setName("The best course");
gctype.setNumberOfHoles(BigInteger.valueOf(18));
gcc.golfCourse = new ArrayList();
gcc.golfCourse.add(0, gctype);
System.out.println(marshall(gcc));
}
public static String marshall(Object jaxbObject) {
try {
JAXBContext jc = JAXBContext.newInstance("com.ibm.levin");
Marshaller marshaller = jc.createMarshaller();
Writer outputWriter = new StringWriter();
marshaller.marshal(jaxbObject, outputWriter);
return outputWriter.toString();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
运行后即可输出上述的xml文档。
5. 实现javax.xml.bind.JAXB类的unmarshal静态方法从xml文件装载java对象。
略。
分享到:
相关推荐
JAXB简易教程JAXB简易教程JAXB简易教程JAXB简易教程JAXB简易教程JAXB简易教程JAXB简易教程JAXB简易教程
一个JAXB2的基础教程,教你快速运用JAXB通过XSD绑定XML和读写XML
JAXB教程 JAXB JAXB插件 里面有很详细的使用说明,看了就知道,JAXB解析XML真的很好用
JAXB的HelloWorld源码,适合想学习JAXB技术的新手学习。
JAXB(Java Architecture for XML Binding) 是一个业界的标准,是一项可以根据XML Schema产生Java类的技术。主要功能是生成XML文件和解析XML文件。
用JAXB生成一个XML文档,一个XML 模式(Schema)用XML语法表达了一个XML文档的结构。...在这篇教程中,作者使用了JAXB用来从一个XML模式中生成Java类。这些Java类将会生成一个范例XML文档。这篇文章由以下几个部份组成.
JAXB:用于 XML 绑定的 Java 架构 关于 这演示了如何使用 JRuby 来控制 JAXB 类。 它的灵感来自 Jason Gilman 此示例代码侧重于构建和编组以及 XML 文档 JAXB JAXB 是源自 Java Architecture for XML Binding 的首...
使用java jdk的JAXB技术实现xml与java对象互相转化代码教程: JDK中JAXB相关的重要Class和Interface:(来源于百度百科JAXB) •JAXBContext类,是应用的入口,用于管理XML/Java绑定信息。 •Marshaller接口,将Java...
根据写一个xjc批处理命令,根据xsd批量生成java类,简单实用方便
使用 JAXB 从 XML Schema 生成 Java 类 此存储库包含可从网站获得的教程的项目文件
教程内容:第一期:01_webservice快速实例02_wsimport的使用03_wsdl和soap讲解(介入了tcpmon工具)04_SOA的分析(纯属扯淡)05_dtd讲解06_schema的命名空间07_schema的元素和属性的定义08_schema的语法和建议的编写...
教程转换JavaJAXB 此存储库包含描述 Java JAXB 转换的 IBM Integration Bus 教程的源代码
jaxb-例子 示例项目演示了Java中JAXB的使用。 JAXB链接 规范: Javadoc: 实现: 教程:
XML Schema 教程 XML Schema 是基于 XML 的 DTD 替代者。 XML Schema 描述 XML 文档的结构。 XML Schema 语言也称作 XML Schema 定义(XML Schema Definition,XSD)。 在此教程中,你将学习如何在应用程序中读取和...
甲骨文Java官方教程,涉及Java的各个方面,数据结构,并发,IO,网络,环境,反射,泛型,图形界面,JDBC,JAXB等,层次清晰,案例鲜明。可以在Oracle官网浏览,本资源提供CHM格式便于查阅。
9.2.2 我的联系手册(JAXB实现) 238 9.3 小结 242 第10章 准备环球旅行——应用程序国际化 243 10.1 讲解 244 10.1.1 概念介绍 244 10.1.2 设置Locale 249 10.1.3 隔离语言环境相关数据 252 10.1.4 格式化 ...
cxf与spring集成 需要最少的jar如下: cxf-2.3.3.jar geronimo-annotation_1.0_spec-1.1.1.jar geronimo-jaxws_2.2_spec-1.0.jar ...教程:https://www.cnblogs.com/huangwentian/p/6813693.html(非本人)
9.2.2 我的联系手册(JAXB实现) 238 9.3 小结 242 第10章 准备环球旅行——应用程序国际化 243 10.1 讲解 244 10.1.1 概念介绍 244 10.1.2 设置Locale 249 10.1.3 隔离语言环境相关数据 252 10.1.4 格式化 ...
Java SE实践教程 源代码 2010-9-13 声明:在网上找了好久才找到这个源码,真不容易啊,请大家多多支持。 2010-9-13 内容简介:此书结合具体实例讲解,通俗易懂,又不乏深度。我觉得这本书写的确实不错,堪称经典,...
XMLConverUtil XML 对象转换(JAXB) JsUtil JsAPI config,chooseWXPay JSON生成 example 消息事件接收 消息事件接收(加密) ...