JAXB

JAXB（Java Architecture for XML Binding简称JAXB）允许Java开发人员将Java类映射为XML表示方式。JAXB提供两种主要特性：将一个Java对象序列化为XML，以及反向操作，将XML解析成Java对象。换句话说，JAXB允许以XML格式存储和读取数据，而不需要程序的类结构实现特定的读取XML和保存XML的代码。

当规格复杂且经常变化时JAXB特别有用。在这种情况下，经常修改XML模式定义以与Java定义保持一致很花费时间并且容易产生错误。

JAXB是Java EE平台的API之一，同时是的一部分。JAXB也是的基础之一. JAXB是J2SE1.6的一部分。

JAXB 1.0是在Java社群过程中作为JSR 31开发出来的。JAXB 2.0是作为JSR 222开发的。这两个版本的参考实现可以从java.net下载。

 使用 
“xjc”工具可以用来将XML模式或其他类型模式文件（Java 1.6试验性地支持RELAX NG，DTD以及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:positiveIntegerjava.math.BigInteger xsd:intint 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

 参见 
 XML数据绑定
 XMLBeans–与JAXB类似的技术，来自Apache软件基金会
 TopLink軟體–对象到关系和对象到XML的映射产品，来自Oracle公司，支持JAXB 1.0

 外部链接 

 JAXB主页，位于GlassFish项目。
 JAXB前主页 
 JSR 222 （JAXB 2.0）
 JSR 31 （JAXB 1.0）
 JAXB教程，作者是Wolfgang Laun
 JaxMe – Apache软件基金会的JAXB的开源实现
 EclipseLink MOXy  – Eclipse基金会JAXB和对象XML映射服务的开源实现
 Java EE 5教程中的JAXB章节 
 用JAXB2从对象模型生成XML文档 
 JAXB 2.0

Category:基于XML的标准
Category:Java
Category:Java规范请求