`
ltian
  • 浏览: 66131 次
  • 性别: Icon_minigender_1
  • 来自: 楼兰
社区版块
存档分类
最新评论

Jaxb教程

    博客分类:
  • JAVA
阅读更多
转载自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对象。

略。
分享到:
评论
1 楼 java0720 2012-12-05  
[color=violet][/color]

相关推荐

    JAXB简易教程

    JAXB简易教程JAXB简易教程JAXB简易教程JAXB简易教程JAXB简易教程JAXB简易教程JAXB简易教程JAXB简易教程

    JAXB2基础教程

    一个JAXB2的基础教程,教你快速运用JAXB通过XSD绑定XML和读写XML

    最新JAXB解析XML教程

    JAXB教程 JAXB JAXB插件 里面有很详细的使用说明,看了就知道,JAXB解析XML真的很好用

    JAXB的HelloWorld源码

    JAXB的HelloWorld源码,适合想学习JAXB技术的新手学习。

    JAXB的例子

    JAXB(Java Architecture for XML Binding) 是一个业界的标准,是一项可以根据XML Schema产生Java类的技术。主要功能是生成XML文件和解析XML文件。

    用JAXB生成一个XML

    用JAXB生成一个XML文档,一个XML 模式(Schema)用XML语法表达了一个XML文档的结构。...在这篇教程中,作者使用了JAXB用来从一个XML模式中生成Java类。这些Java类将会生成一个范例XML文档。这篇文章由以下几个部份组成.

    返利网java源码-jaxb:用于XML绑定类的Java架构的JRuby脚本

    JAXB:用于 XML 绑定的 Java 架构 关于 这演示了如何使用 JRuby 来控制 JAXB 类。 它的灵感来自 Jason Gilman 此示例代码侧重于构建和编组以及 XML 文档 JAXB JAXB 是源自 Java Architecture for XML Binding 的首...

    JAXB技术实现xml与java对象互相转化代码教程

    使用java jdk的JAXB技术实现xml与java对象互相转化代码教程: JDK中JAXB相关的重要Class和Interface:(来源于百度百科JAXB) •JAXBContext类,是应用的入口,用于管理XML/Java绑定信息。 •Marshaller接口,将Java...

    jaxb-ri-20091104

    根据写一个xjc批处理命令,根据xsd批量生成java类,简单实用方便

    jaxb-xsd-example:使用 JAXB 从 XML Schema (XSD) 生成类的示例

    使用 JAXB 从 XML Schema 生成 Java 类 此存储库包含可从网站获得的教程的项目文件

    WEBservice实战开发视频教程

    教程内容:第一期:01_webservice快速实例02_wsimport的使用03_wsdl和soap讲解(介入了tcpmon工具)04_SOA的分析(纯属扯淡)05_dtd讲解06_schema的命名空间07_schema的元素和属性的定义08_schema的语法和建议的编写...

    tutorialTransformationJavaJAXB:此存储库包含描述 Java JAXB 转换的 IBM Integration Bus 教程的源代码

    教程转换JavaJAXB 此存储库包含描述 Java JAXB 转换的 IBM Integration Bus 教程的源代码

    jaxb-example

    jaxb-例子 示例项目演示了Java中JAXB的使用。 JAXB链接 规范: Javadoc: 实现: 教程:

    XML Schema教程

    XML Schema 教程 XML Schema 是基于 XML 的 DTD 替代者。 XML Schema 描述 XML 文档的结构。 XML Schema 语言也称作 XML Schema 定义(XML Schema Definition,XSD)。 在此教程中,你将学习如何在应用程序中读取和...

    Oracle Java Tutorial(Oracle Java官方教程, 基于JDK发1.8,CHM格式,全英文)

    甲骨文Java官方教程,涉及Java的各个方面,数据结构,并发,IO,网络,环境,反射,泛型,图形界面,JDBC,JAXB等,层次清晰,案例鲜明。可以在Oracle官网浏览,本资源提供CHM格式便于查阅。

    Java SE实践教程 pdf格式电子书 下载(四) 更新

    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至少需要的jar包下载,集成Spring cxf jar下载

    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(非本人)

    Java SE实践教程 pdf格式电子书 下载(一) 更新

    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实践教程 源代码 下载

    Java SE实践教程 源代码 2010-9-13 声明:在网上找了好久才找到这个源码,真不容易啊,请大家多多支持。 2010-9-13 内容简介:此书结合具体实例讲解,通俗易懂,又不乏深度。我觉得这本书写的确实不错,堪称经典,...

    微信公众平台JavaSDKweixin-popular.zip

    XMLConverUtil XML 对象转换(JAXB) JsUtil JsAPI config,chooseWXPay JSON生成 example 消息事件接收 消息事件接收(加密) ...

Global site tag (gtag.js) - Google Analytics