转载自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教程**中,通常会涵盖以下几个核心概念和步骤: 1. **数据绑定**: 这是JAXB的核心功能,通过使用`@XmlRootElement`、`@XmlElement`等注解,可以将Java类和XML元素进行绑定。这样,当Java对象被 marshalled...
这个简易教程将引导我们了解如何使用JAXB进行XML到Java对象以及Java对象到XML的转换,这对于处理XML数据在Java应用中的序列化和反序列化非常有用。 **1. 前言** JAXB的主要目的是简化XML数据处理,让开发者能够...
**JAXB(Java Architecture for XML Binding)** 是Java平台上的一个标准技术,用于将Java对象绑定到XML(eXtensible Markup Language)文档,以及从XML数据还原为Java对象。它是Java SE和Java EE的一部分,提供了方便...
**JAXB简介** Java Architecture for XML Binding (JAXB) 是Java平台上的一个重要标准,它提供了一种机制,能够将XML文档与Java对象之间进行映射,实现XML数据和Java对象的无缝转换。JAXB允许开发者在Java应用中...
本教程将详细解释如何在Idea中利用JAXB来读取XML文件中的数据。 JAXB是Java标准API,它提供了将Java对象与XML文档之间进行自动转换的能力。通过JAXB,我们可以在Java对象和XML之间进行无缝的数据绑定,大大简化了...
4. **示例和教程**:可能包含演示如何使用JAXB的示例代码(如`samples`目录),这些例子可以帮助初学者快速上手。 5. **构建脚本和配置文件**:如`build.xml`(Ant)或`pom.xml`(Maven)文件,用于构建和测试JAXB ...
JAXB(Java Architecture for XML Binding)是Java平台上的一项标准技术,用于将XML文档与Java对象之间进行绑定。它提供了一种高效、灵活的方式来在XML数据和Java对象之间进行转换,使得开发者可以方便地处理XML数据...
jaxb还提供了大量的实例和教程,例如编写第一个jaxb程序、为jaxb编写Schema、schema的时间日期类型、schema的list元素、使用枚举类型、使用schema的choice类型、同构集合、schema编写继承关系、schema的ID和IDREF等...
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...
本教程将通过一个实际的demo实例来详细讲解如何使用JAXB2来生产Java类。 **1. JAXB2概述** JAXB2是Java SE 6及更高版本的标准组件,它允许开发者在不编写大量手动代码的情况下,将XML文档映射到Java对象,反之亦然...
在本教程中,我们将深入探讨JAXB的使用,并解决关于namespace prefix自定义的问题。 首先,让我们了解JAXB的基本工作原理。JAXB允许你通过注解或者XML绑定文件(.xjb)将Java类映射到XML Schema定义的元素和属性。...
本教程将详细介绍JAXB如何实现XML到Java对象以及Java对象到XML的转换。 ### JAXB概述 JAXB提供了一种自动化的机制,将XML Schema(XSD)映射到Java类,反之亦然。这允许开发者在Java应用中存储和序列化数据为XML...
本教程将深入探讨`JaxbUtil.zip_jaxb`中涉及的核心知识点——JAXB,以及如何使用`JaxbUtil.java`这个工具类进行XML到Java对象以及Java对象到XML的转换。 **JAXB简介** JAXB是Java平台标准版(Java SE)的一部分,它...
标题“jaxb资料及实例,里面还包含了其他资料地址3”暗示了这个压缩包可能包含有关JAXB的详细教程、示例代码以及指向更多学习资源的链接。这可能包括PDF文档、HTML页面、Java源代码或者视频教程等,帮助开发者深入...
JAXB2 Maven插件欢迎使用org.jvnet.jaxb2.maven2:maven-jaxb2-plugin ,这是用于XML Schema编译的最先进且功能齐全的Maven插件。 这个Maven插件包装并增强了 并允许将XML Schema(以及WSDL,DTD,RELAX NG)编译为...
本教程适用于初学者,旨在帮助了解JAXB的基础知识并开始使用它。 **JAXB简介** JAXB 提供了两个主要功能:XML到Java对象的绑定(unmarshalling)和Java对象到XML的转换(marshalling)。通过自动化的代码生成,...
文件中提到的“http://www.cn-teacher.com/fuwu/dn/bcjs/javajc/200704/192483_2.html”和“http://newleague.iteye.com/blog/1107833”这两个链接,分别提供了关于JAXB使用的教程和示例。例如,在处理保险订单调用...
在实践这些步骤时,阅读和理解JAXB提供的官方文档以及相关教程至关重要。同时,结合例子和实际项目经验,可以更深入地掌握这一技术。"7-steps-to-solve-real-world-problem-using-JAXB-Java.pdf"这个文件可能包含了...