我有一个XML文件,它需要一个元素中的3个属性。如何按照我的意愿制作街道,拉链和城市属性的顺序?
<address street="Big Street" zip="2012" city="Austin">
</address>
@XmlType(name="Street)
@XmlRootElement(name = "Street")
public class Street {
@XmlAttribute
private String name;
@XmlAttribute
private String type;
... set and get method
}
答案 0 :(得分:8)
有趣的是,这些属性似乎与代码中提到的属性相反。在我的情况下,我使用两个变量(名称和值),我必须将它们声明为:
// The inverse order of name & value seems to make them render in XML in name/value order
@XmlAttribute
protected String value;
@XmlAttribute
protected String name;
生成XML时,会产生以下结果:
<attribute name="nameValue" value="valueValue"/>
答案 1 :(得分:7)
您可以使用@XmlAccessorOrder(具有预定义值)或@XmlType(仅适用于属性)来管理排序。
编辑:
对于自定义排序,JAXB规范不提供任何内容,但如果您的JAXB提供程序为您提供某些功能,则可以这样做。
找到这个link,它说的是使用EclipseLink JAXB进行排序。