@XmlTypeのpropOrderプロパティを使用して、シリアル化の順序を指定します



Use Proporder Property Xmltype Specify Order Serialization



デフォルトでは、Jaxbグループのxml内のフィールドの順序はランダムです。 @XmlTypeのpropOrder属性を使用できます。
シリアル化の順序を指定します。


ステップ1:Javaクラスを定義するときは、@ XmlType(propOrder = {'id'、 'name'、 'age'、 'book'})を使用して出力順序を指定します。



01.package step2
02.import java.util.Set
03.
04.import javax.xml.bind.annotation.XmlElement
05.import javax.xml.bind.annotation.XmlElementWrapper
06.import javax.xml.bind.annotation.XmlRootElement
07.import javax.xml.bind.annotation.XmlType
08.
root@xxxxx
root@xxxxx(propOrder = { 'id', 'name', 'age','book'})
11.public class Customer {
12. String name
13. int age
14. int id
15. Set book
16. @XmlElement(name='name')
17. public String getName() {
18. return name
19. }
20.
21. public void setName(String name) {
22. this.name = name
23. }
24.
25. @XmlElement(name='age')
26. public int getAge() {
27. return age
28. }
29.
30. public void setAge(int age) {
31. this.age = age
32. }
33. @XmlElement(name='id')
34. public int getId() {
35. return id
36. }
37.
38. public void setId(int id) {
39. this.id = id
40. }
41.
42.
43. @Override
44. public String toString() {
45. return 'Customer [id=' + id + ',name=' + name + ',age=' + age + ',book=' + book + ']'
46. }
47. @XmlElementWrapper(name='books')
48. @XmlElement(name='book')
49. public Set getBook() {
50. return book
51. }
52.
53. public void setBook(Set book) {
54. this.book = book
55. }
56.
57.
58.}


出力xml:


01.
02.
03. 100
04. suo
05. 29
06.
07.
08. 1
09. Harryport
10. 100.0
11.
12.
13. 2
14. Apple
15. 50.0
16.
17.
18.


[b]
注意:
1. @XmlElementWrapperのマークが付けられた属性は、@ XmlTypeのpropOrderリストに表示できません。
2. @XmlElementアノテーションが付けられたすべてのプロパティについて、@ XmlTypeのpropOrderリストに表示される必要があります。 [/ b]