加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 00:09:46 所属栏目:百科 来源:网络整理
导读:默认情况下,Jaxb编组出来的xml中的字段顺序是随机的,你可以使用 @XmlType的 propOrder属性 来指定序列化的顺序。 第一步:定义java类时,使用 @XmlType(propOrder = { "id","name","age","book"})指定输出顺序。 Java代码 package step2; import java.util
默认情况下,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列表中。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读