@XmlElements({
@XmlElement(name = "house", type = House.class),
@XmlElement(name = "error", type = Error.class),
@XmlElement(name = "message", type = Message.class),
@XmlElement(name = "animal", type = Animal.class)
})
protected List<RootObject> root;
其中RootObject是House,Error,Message,Animal的超类
root.add(new Animal());
root.add(new Message());
root.add(new Animal());
root.add(new House());
//Prints to xml
<animal/>
<message/>
<animal/>
<house/>
但需要按顺序在
@XmlElements({})
中声明<house/>
<message/>
<animal/>
<animal/>
最佳答案
@XmlElements
是什么@XmlElements
对应于XML Schema中的choice
结构。一个属性对应于多个元素(请参阅:http://blog.bdoughan.com/2010/10/jaxb-and-xsd-choice-xmlelements.html)
托收单
JAXB实现将兑现将项目添加到List
的顺序。这与您看到的行为相匹配。
获取所需的订单
List
中。 propOrder
上使用@XmlType
对输出进行排序(请参阅:http://blog.bdoughan.com/2012/02/jaxbs-xmltype-and-proporder.html)List
事件的beforeMarshal
属性进行排序。