天天看點

map對象轉換成xml

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