如何在JAXB类中定义相同的XML元素顺序

时间:2017-06-13 13:15:09

标签: java xml jaxb

我正在为给定的类生成XML文件。但是元素按字母顺序生成,而不是按照它们的声明顺序生成。类有大约40个元素,因此 @XmlType(propOrder = {})不会有用。还有其他办法吗?

1 个答案:

答案 0 :(得分:1)

不幸的是,没有办法按照声明的顺序为给定的类生成XML文件,而不使用@XmlType(propOrder = {})。

字母顺序可能是由JAXB实现中@XmlAccessorOrder的默认行为引起的,可能是在XmlAccessOrder.ALPHABETICAL上设置的。您可以通过以下方式对您的班级进行注释来更改它:

@XmlAccessorOrder(XmlAccessType.UNDEFINED)

但是顺序将依赖于系统的反射实现,并且可能无法满足您的需求。

在propOrder中列出40个元素可能有点烦人,但这是正确的方法。

来源:https://docs.oracle.com/cd/E19316-01/819-3669/bnbcz/index.html