1. @xmlaccessororder.undefinedxmlaccessororder.undefined無序
@xmlaccessororder.alphabetical是指按屬性的字母順序排序。
2. @xmltype的proporder 屬性時,必須列出javabean對象中的所有屬性,否則會報錯
@xmltype(proporder = { "id", "name", "age","book"})指定輸出順序
3. @xmlaccessortype用于指定由java對象生成xml檔案時對java對象屬性的通路方式。
常與@xmlrootelement、@xmltype一起使用。它的屬性值是xmlaccesstype的4個枚舉值,
分别為:
xmlaccesstype.field:java對象中的所有成員變量
xmlaccesstype.property:java對象中所有通過getter/setter方式通路的成員變量
xmlaccesstype.public_member:java對象中所有的public通路權限的成員變量和通過getter/setter方式通路的成員變量
xmlaccesstype.none:java對象的所有屬性都不映射為xml的元素
注意:@xmlaccessortype的預設通路級别是xmlaccesstype.public_member,
是以,如果java對象中的private成員變量設定了public權限的getter/setter方法,就不要在private變量上使用@xmlelement和@xmlattribute注解,
隻能在getter/setter方法上使用@xmlelement和@xmlattribute注解,
否則由java對象生成xml時會報同一個屬性在java類裡存在兩次的錯誤。
同理,如果@xmlaccessortype的通路權限為xmlaccesstype.none,如果在java的成員變量上使用了
4. @xmlelement或@xmlattribute注解,這些成員變量依然可以映射到xml檔案。
5. @xmltransient用于标示在由java對象映射xml時,忽略此屬性,在生成的xml檔案中不出現此元素。
6. @xmlattribute:該屬性作為類xml節點的attribute
7. @xmlelement:該屬性作為xml的element,且可以增加屬性(name="newelementname"),那麼生成的xml串的elment的标簽是newelementname
8. @xmljavatypeadapter
jaxb能夠内置支援list和set集合,但是對于map的支援需要自己處理。
繼承自抽象類xmladapter<valuetype,boundtype>
類型參數:
boundtype - jaxb 不知道如何處理的一些類型。編寫一個擴充卡,以便允許通過 valuetype 将此類型用作記憶體表示形式。
valuetype - jaxb 無需其他操作便知道如何處理的類型。
map轉換成xml代碼示例
擴充卡類
student.java
測試代碼
生成的xml格式
參考文章:
http://blog.csdn.net/lhzjj/article/details/11796713/
http://www.blogjava.net/alwayscy/archive/2007/10/29/156723.html