How can I make @XmlAttribute in a special order by using JAXB?

Chris picture Chris · Apr 30, 2012 · Viewed 15.2k times · Source

I have XML file which needs 3 attributes in an element. How can make the order of street, zip and city attribute as I wanted?

<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
}

Answer

humanity picture humanity · Nov 14, 2012

Anecdotally, the attributes seem to be in reverse order than they are mentioned in code. In my case, I'm using two variables (name & value) and I had to declare them as:

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

When the XML is generated, it results in the following:

<attribute name="nameValue" value="valueValue"/>