How to specify the order of XmlAttributes, using XmlSerializer

demoncodemonkey picture demoncodemonkey · Apr 12, 2010 · Viewed 10.3k times · Source

XmlElement has an "Order" attribute which you can use to specify the precise order of your properties (in relation to each other anyway) when serializing using XmlSerializer.

public class bookingList
{
    [XmlElement(Order = 1)]
    public string error { get; set; }
    [XmlElement(Order = 2)]
    public int counter { get; set; }
    [XmlElement(ElementName = "booking", Order = 3)]
    public List<booking> bookings = new List<booking>();
}

Is there a similar thing for XmlAttribute? I just want to set the order of the attributes from something like

<MyType end="bob" start="joe" />

to

<MyType start="joe" end="bob" />

This is just for readability, my own benefit really.

Answer

Lucero picture Lucero · Apr 12, 2010

You don't, as attributes have no order in XML (section 3.1 of the XML recommendation says: "Note that the order of attribute specifications in a start-tag or empty-element tag is not significant.").