Java中JAXB相關的重要Class和Interface

來源:互聯網
上載者:User
        JAXB(Java Architecture for XML Binding) 是一個業界的標準,是一項可以根據XML Schema產生Java類的技術。該過程中,JAXB也提供了將XML執行個體文檔反向產生Java對象樹的方法,並能將Java對象樹的內容重新寫到XML執行個體文檔。從另一方面來講,JAXB提供了快速而簡便的方法將XML模式綁定到Java表示,從而使得Java開發人員在Java應用程式中能方便地結合XML資料和處理函數。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。“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: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
參考資料
  • 1.  JAXB官方資料 
    .Wikepedia.org [引用日期2013-02-22] .

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.