本教程是针对JDK 8编写的。本页面中描述的示例和实践不利用后续版本中引入的改进,并且可能使用不再可用的技术。
请参阅Java语言更改以获取Java SE 9及其后续版本中更新的语言特性的摘要。
请参阅JDK发行说明,了解所有JDK版本的新功能、增强功能以及已删除或不建议使用的选项的信息。
本节描述了JAXB使用的默认的XML到Java绑定。所有这些绑定都可以通过使用自定义绑定声明在全局或逐个案例中进行覆盖。有关默认JAXB绑定的完整信息,请参阅JAXB规范。
使用简单类型定义的模式组件通常绑定到Java属性。因为有不同类型的模式组件,所以以下Java属性属性(对于模式组件通用)包括:
Java属性的其余属性在使用简单类型定义的模式组件中指定。
以下各节解释了默认的模式到Java、JAXBElement和Java到模式的数据类型绑定。
Java语言提供了比XML模式更丰富的数据类型。以下表格提供了在JAXB中将XML数据类型映射到Java数据类型的映射。
表格:JAXB映射XML Schema内置数据类型
XML Schema类型 | Java数据类型 |
---|---|
xsd:string | java.lang.String |
xsd:integer | 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 |
当无法通过XML内容的派生Java表示来推断XML元素信息时,提供了一个JAXBElement对象。该对象具有获取和设置对象名称和对象值的方法。
表格:JAXB XML数据类型到Java类的映射
Java类 | XML数据类型 |
---|---|
java.lang.String | xs:string |
java.math.BigInteger | xs:integer |
java.math.BigDecimal | xs:decimal |
java.util.Calendar | xs:dateTime |
java.util.Date | xs:dateTime |
javax.xml.namespace.QName | xs:QName |
java.net.URI | xs:string |
javax.xml.datatype.XMLGregorianCalendar | xs:anySimpleType |
javax.xml.datatype.Duration | xs:duration |
java.lang.Object | xs:anyType |
java.awt.Image | xs:base64Binary |
javax.activation.DataHandler | xs:base64Binary |
javax.xml.transform.Source | xs:base64Binary |
java.util.UUID | xs:string |