JAXB--@XmlType注解标注xml生成顺序(四)

前端之家收集整理的这篇文章主要介绍了JAXB--@XmlType注解标注xml生成顺序(四)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
默认情况下,Jaxb编组出来的xml中的字段顺序是随机的,你可以使用 @XmlType的 propOrder属性
来指定序列化的顺序。

第一步:定义java类时,使用 @XmlType(propOrder = { "id","name","age","book"})指定输出顺序。
Java代码
  1. packagestep2;
  2. importjava.util.Set;
  3. importjavax.xml.bind.annotation.XmlElement;
  4. importjavax.xml.bind.annotation.XmlElementWrapper;
  5. importjavax.xml.bind.annotation.XmlRootElement;
  6. importjavax.xml.bind.annotation.XmlType;
  7. @XmlRootElement
  8. @XmlType(propOrder={"id","name","age","book"})
  9. publicclassCustomer{
  10. Stringname;
  11. intage;
  12. intid;
  13. Set<Book>book;
  14. @XmlElement(name="name")
  15. publicStringgetName(){
  16. returnname;
  17. }
  18. voidsetName(Stringname){
  19. this.name=name;
  20. @XmlElement(name="age")
  21. intgetAge(){
  22. returnage;
  23. voidsetAge(intage){
  24. this.age=age;
  25. @XmlElement(name="id")
  26. intgetId(){
  27. returnid;
  28. voidsetId(intid){
  29. this.id=id;
  30. @Override
  31. publicStringtoString(){
  32. return"Customer[id="+id+",name="+name+",age="+age+",book="+book+"]";
  33. @XmlElementWrapper(name="books")
  34. @XmlElement(name="book")
  35. publicSet<Book>getBook(){
  36. returnbook;
  37. voidsetBook(Set<Book>book){
  38. this.book=book;
  39. }
输出的xml:
Xml代码
  1. <?xmlversion="1.0"encoding="UTF-8"standalone="yes"?>
  2. <customer>
  3. id>100</name>suoage>29booksbook>1>哈里波特price>100.0>2>苹果>50.0>
注:
1.对于@XmlElementWrapper标注的属性,不能出现在@XmlType的propOrder列表中。
2.对于所有@XmlElement标注过的属性,必须出现在@XmlType的propOrder列表中。
原文链接:https://www.f2er.com/xml/294633.html

猜你在找的XML相关文章