1. 程式人生 > >[email protected]註解標註xml生成順序(四)

[email protected]註解標註xml生成順序(四)

預設情況下,Jaxb編組出來的xml中的欄位順序是隨機的,你可以使用@XmlType的propOrder屬性 來指定序列化的順序。 第一步:定義java類時,使用@XmlType(propOrder = { "id", "name", "age","book"})指定輸出順序。 Java程式碼  收藏程式碼
  1. package step2;  
  2. import java.util.Set;  
  3. import javax.xml.bind.annotation.XmlElement;  
  4. import javax.xml.bind.annotation.XmlElementWrapper;  
  5. import javax.xml.bind.annotation.XmlRootElement;  
  6. import javax.xml.bind.annotation.XmlType;  
  7. @XmlRootElement  
  8. @XmlType(propOrder = { "id""name""age","book"})  
  9. public class Customer {  
  10.     String name;  
  11.     int age;  
  12.     int id;  
  13.     Set<Book> book;  
  14.     @XmlElement(name="name")  
  15.     public String getName() {  
  16.         return name;  
  17.     }  
  18.     public void setName(String name) {  
  19.         this.name = name;  
  20.     }  
  21.     @XmlElement(name="age")  
  22.     public int getAge() {  
  23.         return age;  
  24.     }  
  25.     public void setAge(int age) {  
  26.         this.age = age;  
  27.     }  
  28.     @XmlElement(name="id")  
  29.     public int getId() {  
  30.         return
     id;  
  31.     }  
  32.     public void setId(int id) {  
  33.         this.id = id;  
  34.     }  
  35.     @Override  
  36.     public String toString() {  
  37.         return "Customer [id=" + id + ",name=" + name + ",age=" + age + ",book=" + book + "]";  
  38.     }  
  39.     @XmlElementWrapper(name="books")  
  40.     @XmlElement(name="book")  
  41.     public Set<Book> getBook() {  
  42.         return book;  
  43.     }  
  44.     public void setBook(Set<Book> book) {  
  45.         this.book = book;  
  46.     }  
  47. }  
輸出的xml: Xml程式碼  收藏程式碼
  1. <?xml version="1.0" encoding="UTF-8" standalone="yes"?>  
  2. <customer>  
  3.     <id>100</id>  
  4.     <name>suo</name>  
  5.     <age>29</age>  
  6.     <books>  
  7.         <book>  
  8.             <id>1</id>  
  9.             <name>哈里波特</name>  
  10.             <price>100.0</price>  
  11.         </book>  
  12.         <book>  
  13.             <id>2</id>  
  14.             <name>蘋果</name>  
  15.             <price>50.0</price>  
  16.         </book>  
  17.     </books>  
  18. </customer>  
注: 1.對於@XmlElementWrapper標註的屬性,不能出現在@XmlType的propOrder列表中。 2.對於所有@XmlElement標註過的屬性,必須出現在@XmlType的propOrder列表中。