`
ltian
  • 浏览: 67957 次
  • 性别: 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解析XML教程

    在**JAXB教程**中,通常会涵盖以下几个核心概念和步骤: 1. **数据绑定**: 这是JAXB的核心功能,通过使用`@XmlRootElement`、`@XmlElement`等注解,可以将Java类和XML元素进行绑定。这样,当Java对象被 marshalled...

    JAXB简易教程

    这个简易教程将引导我们了解如何使用JAXB进行XML到Java对象以及Java对象到XML的转换,这对于处理XML数据在Java应用中的序列化和反序列化非常有用。 **1. 前言** JAXB的主要目的是简化XML数据处理,让开发者能够...

    JAXB的HelloWorld源码

    **JAXB(Java Architecture for XML Binding)** 是Java平台上的一个标准技术,用于将Java对象绑定到XML(eXtensible Markup Language)文档,以及从XML数据还原为Java对象。它是Java SE和Java EE的一部分,提供了方便...

    JAXB的例子

    **JAXB简介** Java Architecture for XML Binding (JAXB) 是Java平台上的一个重要标准,它提供了一种机制,能够将XML文档与Java对象之间进行映射,实现XML数据和Java对象的无缝转换。JAXB允许开发者在Java应用中...

    idea 中用jaxb 读xml中数据

    本教程将详细解释如何在Idea中利用JAXB来读取XML文件中的数据。 JAXB是Java标准API,它提供了将Java对象与XML文档之间进行自动转换的能力。通过JAXB,我们可以在Java对象和XML之间进行无缝的数据绑定,大大简化了...

    jaxb-ri-2.2.7

    4. **示例和教程**:可能包含演示如何使用JAXB的示例代码(如`samples`目录),这些例子可以帮助初学者快速上手。 5. **构建脚本和配置文件**:如`build.xml`(Ant)或`pom.xml`(Maven)文件,用于构建和测试JAXB ...

    jaxb-ri-20091104

    JAXB(Java Architecture for XML Binding)是Java平台上的一项标准技术,用于将XML文档与Java对象之间进行绑定。它提供了一种高效、灵活的方式来在XML数据和Java对象之间进行转换,使得开发者可以方便地处理XML数据...

    jaxb开发使用文档

    jaxb还提供了大量的实例和教程,例如编写第一个jaxb程序、为jaxb编写Schema、schema的时间日期类型、schema的list元素、使用枚举类型、使用schema的choice类型、同构集合、schema编写继承关系、schema的ID和IDREF等...

    返利网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...

    jaxb2 生产java类demo实例

    本教程将通过一个实际的demo实例来详细讲解如何使用JAXB2来生产Java类。 **1. JAXB2概述** JAXB2是Java SE 6及更高版本的标准组件,它允许开发者在不编写大量手动代码的情况下,将XML文档映射到Java对象,反之亦然...

    JAXB Demo及namespace的prefix自定义解决方案

    在本教程中,我们将深入探讨JAXB的使用,并解决关于namespace prefix自定义的问题。 首先,让我们了解JAXB的基本工作原理。JAXB允许你通过注解或者XML绑定文件(.xjb)将Java类映射到XML Schema定义的元素和属性。...

    JAXB工具类 xml转为java对象 java对象转为xml

    本教程将详细介绍JAXB如何实现XML到Java对象以及Java对象到XML的转换。 ### JAXB概述 JAXB提供了一种自动化的机制,将XML Schema(XSD)映射到Java类,反之亦然。这允许开发者在Java应用中存储和序列化数据为XML...

    JaxbUtil.zip_jaxb

    本教程将深入探讨`JaxbUtil.zip_jaxb`中涉及的核心知识点——JAXB,以及如何使用`JaxbUtil.java`这个工具类进行XML到Java对象以及Java对象到XML的转换。 **JAXB简介** JAXB是Java平台标准版(Java SE)的一部分,它...

    jaxb资料及实例,里面还包含了其他资料地址3

    标题“jaxb资料及实例,里面还包含了其他资料地址3”暗示了这个压缩包可能包含有关JAXB的详细教程、示例代码以及指向更多学习资源的链接。这可能包括PDF文档、HTML页面、Java源代码或者视频教程等,帮助开发者深入...

    maven-jaxb2-plugin:用于XML模式编译的最先进的JAXB2 Maven插件

    JAXB2 Maven插件欢迎使用org.jvnet.jaxb2.maven2:maven-jaxb2-plugin ,这是用于XML Schema编译的最先进且功能齐全的Maven插件。 这个Maven插件包装并增强了 并允许将XML Schema(以及WSDL,DTD,RELAX NG)编译为...

    JAXB应用实例.zip_36ZP_gainrtu_java

    本教程适用于初学者,旨在帮助了解JAXB的基础知识并开始使用它。 **JAXB简介** JAXB 提供了两个主要功能:XML到Java对象的绑定(unmarshalling)和Java对象到XML的转换(marshalling)。通过自动化的代码生成,...

    socket 和jaxb

    文件中提到的“http://www.cn-teacher.com/fuwu/dn/bcjs/javajc/200704/192483_2.html”和“http://newleague.iteye.com/blog/1107833”这两个链接,分别提供了关于JAXB使用的教程和示例。例如,在处理保险订单调用...

    使用JAXB(用于XML绑定的Java API)解决现实世界问题的7个步骤

    在实践这些步骤时,阅读和理解JAXB提供的官方文档以及相关教程至关重要。同时,结合例子和实际项目经验,可以更深入地掌握这一技术。"7-steps-to-solve-real-world-problem-using-JAXB-Java.pdf"这个文件可能包含了...

Global site tag (gtag.js) - Google Analytics