默认情况下,Jaxb编组出来的xml中的字段顺序是随机的,你可以使用@XmlType的propOrder属性
来指定序列化的顺序。
 
第一步:定义java类时,使用@XmlType(propOrder = { "id", "name", "age","book"})指定输出顺序。
 
  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:
 
  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列表中。
 

JAXB--@XmlType注解标注xml生成顺序的更多相关文章

  1. mybatis使用注解替代xml配置,动态生成Sql

    mybatis使用注解替代xml配置时,遇到判断条件是否为null或者为空时,@Select很难搞定,不知道怎么办? mybatis3中增加了使用注解来配置Mapper的新特性,使用 SelectPr ...

  2. 使用JAXB实现Bean与Xml相互转换

    最近几天,我自己负责的应用这边引入了一个新的合作方,主要是我这边调用他们的接口,但是有个很坑的地方,他们传参居然不支持json格式,并且只支持xml格式进行交互,于是自己写了一个工具类去支持bean与 ...

  3. JAXB java类与xml互转

    JAXB(Java Architecture for XML Binding) 是一个业界的标准,是一项可以根据XML Schema产生Java类的技术.该过程中,JAXB也提供了将XML实例文档反向 ...

  4. JAXB常用注解讲解(超详细)

    简介: JAXB(Java Architecture for XML Binding) 是一个业界的标准,是一项可以根据XML Schema产生Java类的技术.该过程中,JAXB也提供了将XML实例 ...

  5. JAXB—Java类与XML文件之间转换

    JAXB-Java类与XML文件之间转换 简介         JAXB(Java Architecture for XML Binding) 是一个业界的标准,是一项可以根据XML Schema产生 ...

  6. Spring+MyBatis纯注解零XML整合(4)

    不得不说,利用XML作为配置文件是一个非常好的想法,它可以轻松地实现配置集中化,而且修改之后无需再次编译.然而,由于大多数情况下开发者基本都会拿到程序的源码,加之对于各种XML配置文件一般情况下也只有 ...

  7. Spring使用AspectJ注解和XML配置实现AOP

    本文演示的是Spring中使用AspectJ注解和XML配置两种方式实现AOP 下面是使用AspectJ注解实现AOP的Java Project首先是位于classpath下的applicationC ...

  8. @ComponentScan注解及其XML配置

    开发中会经常使用包扫描,只要标注了@Controller.@Service.@Repository,@Component 注解的类会自动加入到容器中,ComponentScan有注解和xml配置两种方 ...

  9. Servlet使用注解标注监听器(Listener)

    Servlet3.0提供@WebListener注解将一个实现了特定监听器接口的类定义为监听器,这样我们在web应用中使用监听器时,也不再需要在web.xml文件中配置监听器的相关描述信息了. 下面我 ...

随机推荐

  1. MongoDB分片配置系列一:

    接这篇博客: http://www.cnblogs.com/xiaoit/p/4479066.html 这里不再说明安装过程. 1:分片简介 分片是一种将海量的数据水平扩展的数据库集群系统,数据分表存 ...

  2. set-matrix-zeroes当元素为0则设矩阵内行与列均为0

    题目描述 Given a m x n matrix, if an element is 0, set its entire row and column to 0. Do it in place. c ...

  3. Java常用的非受检异常

    IllegalArgumentException 非 null 的参数值不正确 IllegalStateException 对于方法调用而言,对象状态不合适 NullPointException 参数 ...

  4. Java之创建对象>3.Enforce the singleton property with a private constructor or an enum type

     1. 通过一个公开的字段来获取单例 // Singleton with public final field public class Elvis { public static final Elv ...

  5. Jackson序列化日期类型的属性

    @JsonProperty("BankSettlementDate") @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = ...

  6. Weblogic部署gbk编码的项目乱码

    问题描述: weblogic默认部署的项目编码utf-8,由于项目特殊编码gbk导致打开项目中文全是乱码! 心哇凉哇凉.... 问题解决: 01.调休jvm参数 xxx_domains/bin/set ...

  7. Ubuntu18.04使用adb和tcpdump对android设备进行网络调试

    准备工作 1. Android设备需要root 2. 在 https://www.androidtcpdump.com/ 下载适用于Android的tcpdump可执行文件 3. 本地安装 andro ...

  8. 抗衡Win Linux全凭这些桌面环境

    2012年01月25日 元老级桌面环境KDE     Linux操作系统最早使用在服务器上,而桌面操作系统并不是Linux的重点突围.但是,近几年Linux桌面操作系统有崛起的趋势,抢夺了部分桌面操作 ...

  9. iOS presentedViewController和presentingViewController的区别

    当我们用present进行界面跳转时,会涉及到一个传向关系. 比如:A -> B    界面A跳转界面B A.presentedViewControlle = B B.presentingVie ...

  10. jsp空指针异常

    1.Tomcat启动后访问首页报错 显示JSP 空指针异常 这哥们是因为lib下jar包和Tomcat下的jar包冲突,去掉lib下 servlet-api-2.5.jar 以及jsp-api.jar ...