如何使用JAXB以特殊的顺序生成@XmlAttribute?

如何使用JAXB以特殊的顺序生成@XmlAttribute?,jaxb,xml-attribute,Jaxb,Xml Attribute,我有一个XML文件,它在一个元素中需要3个属性。如何使街道、邮政编码和城市属性的顺序符合我的要求 @XmlType(name=“Street) @XmlRootElement(name=“Street”) 公营街道{ @XmlAttribute 私有字符串名称; @XmlAttribute 私有字符串类型; …设置和获取方法 } 您可以使用(具有预定义值)或(仅适用于属性)来管理排序 编辑: 对于定制订购,JAXB规范不提供任何内容,但如果您的JAXB提供程序提供了一些特性,您可以这样做

我有一个XML文件,它在一个元素中需要3个属性。如何使街道、邮政编码和城市属性的顺序符合我的要求


@XmlType(name=“Street)
@XmlRootElement(name=“Street”)
公营街道{
@XmlAttribute
私有字符串名称;
@XmlAttribute
私有字符串类型;
…设置和获取方法
}
您可以使用(具有预定义值)或(仅适用于属性)来管理排序

编辑:

对于定制订购,JAXB规范不提供任何内容,但如果您的JAXB提供程序提供了一些特性,您可以这样做


在谈到使用EclipseLink JAXB进行排序时发现了这一点。

有趣的是,属性的顺序似乎与代码中提到的相反。在我的例子中,我使用了两个变量(名称和值),我必须声明它们为:

// 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"/>


是的,我们似乎对此无能为力。是的,除非您恢复到提供程序APIsIt,否则它们似乎在Java 6中按字母顺序排序,在Java 7中按声明顺序排序(在这两种情况下都使用内置JDK JAXB提供程序)。Java 7似乎还考虑了
Proporter