`
christ_man
  • 浏览: 5579 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JaxB介绍

阅读更多

 

       JAXB(Java Architecture for XML Binding) 是一个业界的标准,是一项可以根据XML Schema产生Java类的技术。该过程中,JAXB也提供了将XML实例文档反向生成Java对象树的方法,并能将Java对象树的内容重新写到XML实例文档。从另一方面来讲,JAXB提供了快速而简便的方法将XML模式绑定到Java表示,从而使得Java开发者在Java应用程序中能方便地结合XML数据和处理函数。

 

 

 

 

 

Java SE中的JAXB

JAXB 2.0是JDK 1.6的组成部分。JAXB 2.2.3是JDK 1.7的组成部分。

JDK中JAXB相关的重要Class和Interface:

JAXBContext类,是应用的入口,用于管理XML/Java绑定信息。
Marshaller接口,将Java对象序列化为XML数据。
Unmarshaller接口,将XML数据反序列化为Java对象。

JDK中JAXB相关的重要Annotation:

@XmlType,将Java类或枚举类型映射到XML模式类型
@XmlAccessorType(XmlAccessType.FIELD) ,控制字段或属性的序列化。FIELD表示JAXB将自动绑定Java类中的每个非静态的(static)、非瞬态的(由@XmlTransient标注)字段到XML。其他值还有XmlAccessType.PROPERTY和XmlAccessType.NONE。
@XmlAccessorOrder,控制JAXB 绑定类中属性和字段的排序。
@XmlJavaTypeAdapter,使用定制的适配器(即扩展抽象类XmlAdapter并覆盖marshal()和unmarshal()方法),以序列化Java类为XML。
@XmlElementWrapper ,对于数组或集合(即包含多个元素的成员变量),生成一个包装该数组或集合的XML元素(称为包装器)。
@XmlRootElement,将Java类或枚举类型映射到XML元素。
@XmlElement,将Java类的一个属性映射到与属性同名的一个XML元素。
@XmlAttribute,将Java类的一个属性映射到与属性同名的一个XML属性。

其他:

对于要序列化(marshal)为XML的Java类,绝不能把成员变量声明为public,否则运行将抛出异常com.sun.xml.internal.bind.v2.runtime.IllegalAnnotationsException。
对于JAXB相关的重要Annotation的声明,如@Xml.....,可以放在成员变量的setter()getter()方法上,两者中任选其一即可,但决不能放在成员变量上,否则运行将抛出异常com.sun.xml.internal.bind.v2.runtime.IllegalAnnotationsException。
[1]

编辑本段使用

“xjc”工具可以用来将XML模式或其他类型模式文件(Java 1.6试验性地支持RELAX NGDTD以及WSDL)转换为Java类。Java类使用javax.xml.bind.annotation包下的Java 标注,例如@XmlRootElement和@XmlElement。XML列表序列表示为java.util.List类型的属性, 通过JAXBContext可以创建Marshallers(将Java对象转换成XML)和Unmarshallers(将XML解析为Java对象)。
此外,JAXB包括了一个“schemagen”工具,能够执行“xjc”的反向操作,通过一组标注的Java类创建一个XML模式。

编辑本段缺省的数据类型绑定

下面的表格列出了JAXB中XML数据类型和Java数据类型的映射。
XML Schema类型
Java数据类型
xsd:string
java.lang.String
xsd:positiveInteger
java.math.BigInteger
xsd:int
int
xsd:long
long
xsd:short
short
xsd:decimal
java.math.BigDecimal
xsd:float
float
xsd:double
double
xsd:boolean
boolean
xsd:byte
byte
xsd:QName
javax.xml.namespace.QName
xsd:dateTime
javax.xml.datatype.XMLGregorianCalendar
xsd:base64Binary
byte[]
xsd:hexBinary
byte[]
xsd:unsignedInt
long
xsd:unsignedShort
int
xsd:unsignedByte
short
xsd:time
javax.xml.datatype.XMLGregorianCalendar
xsd:date
javax.xml.datatype.XMLGregorianCalendar
xsd:g
javax.xml.datatype.XMLGregorianCalendar
xsd:anySimpleType
java.lang.Object
xsd:anySimpleType
java.lang.String
xsd:duration
javax.xml.datatype.Duration
xsd:NOTATION
javax.xml.namespace.QName

 

 

 

 

分享到:
评论

相关推荐

    JAXB资料集.rar

    "JAXB介绍.ppt"可能包含更直观的演示,通过幻灯片的形式展示JAXB的基本概念、工作原理以及实际应用案例。PPT通常会用图表和示例代码来帮助理解,对于初学者来说是非常有益的学习资源。 "JAXBDemos"这部分很可能是...

    jaxb2.0英文文档

    - `overview-summary.html`:概述摘要,简要介绍JAXB 2.0的关键特性。 这些文档可以帮助开发者深入理解JAXB 2.0的工作原理,学习如何有效地使用它的各种功能,以及如何解决可能出现的问题。通过查阅这些文档,你...

    JAXB-2.2.6-release-documentation

    - **版本**:本文档介绍的是 JAXB 2.2.6 版本的相关内容。 - **功能**:通过 JAXB,可以轻松地将 Java 对象序列化为 XML 文档,或将 XML 文档反序列化为 Java 对象。 - **应用场景**:广泛应用于需要处理 XML 数据的...

    用JAXB生成一个XML

    本文将详细介绍如何利用JAXB来从一个XML模式(Schema)生成Java类,并最终构建出符合该模式的XML文档。 #### 二、准备工作 为了使用JAXB从XML模式中生成Java类,首先需要确保以下工具和库已经正确配置: 1. **...

    Java XML绑定技术 (Castor JAXB XMLBeans)

    本文将详细介绍Java XML绑定技术的基本概念,并重点介绍三种常用的实现框架:JAXB、XMLBeans和Castor。 #### 二、Java XML绑定技术概述 Java XML绑定技术(简称XML Binding)是一种能够自动将XML文档映射到Java...

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

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

    jaxws-api-2.1_jaxb-api-2.1.jar

    本文将详细介绍这些技术以及与之相关的Geronimo JAXWS 2.2规范。 **JAX-WS 2.1** JAX-WS是Java SE和Java EE环境中用于处理SOAP消息和创建Web服务的标准API。它简化了Web服务的开发,通过提供一种声明式的方式来定义...

    webservice实例 CXF的JAXWS和JAXRS实现 及JAXB标准接口实现带jar包

    下面将详细介绍这些知识点。 首先,**JAX-WS** 是一种用于构建SOAP(Simple Object Access Protocol)Web服务的标准API,它使得Java开发者可以方便地创建服务端点(SEI,Service Endpoint Interface)并将其暴露为...

    JAXB2.0编组和解组实现

    本篇文章将详细介绍JAXB2.0在编组和解组过程中的实现方式。 **1. JAXB2.0简介** JAXB2.0是JAXB规范的第二个主要版本,引入了许多新特性,如注解支持、XML Schema绑定等。相比于JAXB1.0,2.0版本提供了更加简洁和...

    [精品]JAVA6新特性介绍使用JAXB来实现对象与XML之间的映射.doc

    【JAVA6新特性:JAXB简介】 Java Architecture for XML Binding(JAXB)是Java平台上的一个标准技术,它提供了一种方便的对象与XML之间的映射机制。在Java 6中,JAXB已经成为Java Standard Edition(Java SE)的一...

    深入解析:Java中JAXB(Java Architecture for XML Binding)实现机制

    在Java企业级应用开发中,数据交换格式的选择至关重要。XML作为一种结构化的标记语言,因其自描述性和...本文详细介绍了JAXB的工作原理、使用方法和最佳实践,希望能够帮助开发者更有效地利用JAXB进行企业级应用开发。

    使用JAXB处理XML文档WORD版最新版本

    本文档主要讲述的是使用JAXB处理XML文档;以简短的篇幅介绍了JAXB的基本使用,希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看

    深入jaxb xjc编码问题的详细介绍

    Java平台下的多种工具和技术,其中JAXB(Java Architecture for XML Binding)就是一种用于将Java类绑定到XML表示的方法,而XJC是JAXB提供的命令行工具,用于根据XML Schema生成Java类。 当我们在开发涉及XML与Java...

    jaxb2-fixed-value:JAXB2 固定值插件

    介绍 这个插件受到了高度启发,并共享了许多通用代码。 这是一个 XJC 插件,用于根据 xs:element 的固定属性在 XJC 生成的类中设置固定值。 记录固定属性。 请注意,JAXB 本地处理 xs:attribute 的固定值,因此此...

    谈谈为JAXB和response设置编码,解决wechat4j中文乱码的问题

    中文乱码是每个程序员都会遇到的问题,本篇文章主要介绍了谈谈为JAXB和response设置编码,解决wechat4j中文乱码的问题,具有一定的参考价值,有兴趣的可以了解一下。

    a road map through nachos

    这一部分主要介绍了构成Nachos运行环境的基础硬件组件及其管理机制。 ##### 2.1 Machine Components(机器组件) - **CPU**: Nachos基于MIPS架构设计,该架构的特点是简单、易于理解和实现。 - **Memory**: 包括...

    JaxbGen.rar

    在描述中提到的链接是一个CSDN博客文章,详细介绍了**XSD Schema** 的应用场景,这可能是压缩包中项目的灵感来源或者参考材料。如果你正在学习或使用JAXB处理XML,这篇博客可能会提供一些实用的指导。 总的来说,这...

Global site tag (gtag.js) - Google Analytics