前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。
用于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
?