marshall 出来的xml文件都是
根据首字符排列的, 感觉跟如下解释的不大一样,
也就是说UNDEFINED也是按照ALPHABETICAL排列的
搞不懂
另外那个@XmlType.propOrder:还是挺好用滴
-----------------------
一下摘自网络
@XmlAccessorOrder @XmlType.propOrder 用于指明xml schema元素的顺序
使用@XmlAccessorOrder:
包括XmlAccessorOrder.UNDEFINED XmlAccessorOrder.ALPHABETICAL两个值,默认为UNDEFINED(无序),XmlAccessorOrder.ALPHABETICAL是指按属性的字母顺序排序。
当@XmlAccessorOrder定义在一个package之上时候(Package annotations must be in file package-info.java),此包下的所有类都遵守@XmlAccessorOrder定义的规则;当它定义在类之上时,只有该类的内容遵守规则。
就近原则:如果出现在package之上使用@XmlAccessorOrder并且在该包下的某个类又使用了@XmlAccessorOrder,那在该类上定义的@XmlAccessorOrder规则才起作用,如在package上声明@XmlAccessorOrder(XmlAccessOrder.ALPHABETICAL),而在某类上声明为UNDEFINED,则该类遵守的规则为UNDEFINED。
使用@XmlType.propOrder:
propOrder可以定义class中字段出现在xml中的顺序,class中所有public的字段必须列的propOrder的参数列表中,如果不想将某public字段列在列表中,可在字段上使用@XmlTransient or @XmlAttribute注解标识。
默认的内容顺序为@XmlType.propOrder is {} or {""}(not active 可认为无序?),在这种情况下,@XmlAccessorOrder 注解具有优先权。当@XmlAccessorOrder 与@XmlType.propOrder同时出现时,propOrder总是具有优先权(最终起作用)。