JAXB 排序多个属性

JAXB ordering multiple properties

在我的项目中,我想在 XML 中实现特定的属性顺序。在 java 中,对象表示为:

public class Plan {
    private List<Act> act;
    private List<Leg> leg;
    ...

输出对象应该类似于这个:

   <plan>
        <act x="-25000" y="0"/>
        <leg mode="car">
              ...
        </leg>

        <act x="10000" y="0"/>
        <leg mode="car">
              ...
        </leg>
    </plan>

JAXB 是否能够为我需要按顺序排列项目的情况设置特定顺序:

   act.get(0)
   leg.get(0)

   act.get(1)
   leg.get(1)
   ...
   ..
   .

我知道 JAXB 能够保存特定顺序的参数,例如首先执行操作,然后使用 @XmlType (propOrder={"prop1","prop2",..."propN"}),但是这个项目不是读取此 [=24 的第 3 方应用程序的情况=] 成对阅读它们,propOrder 会一个接一个地打印它们。

好的,我从不同的角度解决了这个问题,我解决了它...以前我认为这是一个排序问题 - 事实上,它是 Java POJO class 的问题构造和 JAXB 注释。

解决方法是使用

    @XmlElements({
            @XmlElement(name="leg", type=Leg.class),
            @XmlElement(name="act", type=Act.class)
    })
    @XmlElementWrapper(name="plan")
    public List<Plan> getPlan() {
        return plan;
    }

然后物品必须一个接一个地放。

可以在这个答案中找到更多详细信息: Marshalling a List of objects implementing a common interface, with JaxB