前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。
用于XML绑定的Java体系结构(JAXB)是一种软件框架,它允许Java开发人员将Java 类映射到XML表示。JAXB提供了两个主要特性:将Java 对象编组到XML中的能力,以及将XML反编组回Java对象的能力。换句话说,JAXB允许以任何XML格式存储和检索内存中的数据,而无需为程序的类结构实现一组特定的XML加载和保存例程。它类似于和在.NET框架。xsd.exe
XmlSerializer
当规范复杂且不断变化时,JAXB特别有用。在这种情况下,定期更改XML模式定义以使它们与Java定义保持同步可能非常耗时并且容易出错。
JAXB是Java SE平台的一部分,也是Java EE平台中的API之一,并且是Java Web服务开发包(JWSDP)的一部分。这也是WSIT的基础之一。
JAXB 1.0是在Java社区过程下作为JSR 31 开发的。[1] 2006年,JAXB 2.0在2009年12月发布的JSR 222和维护版本2下发布。[2] 这些规范的参考实现可在CDDL开源许可证在java.net。
可以使用工具“ xjc ”将XML Schema和其他模式文件类型(从Java 1.6起,RELAX NG,XML DTD和WSDL在实验中支持)转换为类表示。[3]类被加上标记后使用注解从javax.xml.bind.annotation。*命名空间,例如,@XmlRootElement和@XmlElement。XML列表序列由java.util.List类型的属性表示。Marshalers和Unmarshallers是通过JAXBContext的一个实例创建的。
另外,JAXB包含一个“ schemagen ”工具,它本质上可以执行“ xjc ” 的逆操作,从一组注释类创建一个XML模式。
下表列出了JAXB 中XML Schema(XSD)数据类型与Java数据类型的映射。
XML模式类型 | Java数据类型 |
---|---|
xsd:string | java.lang.String |
xsd:integer | java.math.BigInteger |
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:unsignedLong | java.math.BigDecimal |
xsd:time | javax.xml.datatype.XMLGregorianCalendar |
xsd:date | javax.xml.datatype.XMLGregorianCalendar |
xsd:g | javax.xml.datatype.XMLGregorianCalendar |
xsd:anySimpleType [5] | java.lang.Object |
xsd:anySimpleType [6] | java.lang.String |
xsd:duration | javax.xml.datatype.Duration |
xsd:NOTATION | javax.xml.namespace.QName |
原文见 : https://en.wikipedia.org/wiki/Java_Architecture_for_XML_Binding