微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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.jb51.cc/xml/294633.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。