Как уже упоминалось, в сорок два года вы можете сделать канонический XML из XML, и это упорядочит атрибуты в алфавитном порядке для вас.
В Java мы можем использовать что-то вроде Apache's Canonicalizer
org.apache.xml.security.c14n.Canonicalizer
Примерно так (при условии, что Document inXMLDoc уже является DOM):
Document retDoc;
byte[] c14nOutputbytes;
DocumentBuilderFactory factory;
DocumentBuilder parser;
// CANONICALIZE THE ORIGINAL DOM
c14nOutputbytes = Canonicalizer.getInstance(Canonicalizer.ALGO_ID_C14N_WITH_COMMENTS).canonicalizeSubtree(inXMLDoc.getDocumentElement());
// PARSE THE CANONICALIZED BYTES (IF YOU WANT ANOTHER DOM) OR JUST USE THE BYTES
factory = DocumentBuilderFactory.newInstance();
factory.set ... // SETUP THE FACTORY
parser = factory.newDocumentBuilder();
// REPARSE TO GET ANOTHER DOM WITH THE ATTRIBUTES IN ALPHA ORDER
ByteArrayInputStream bais = new ByteArrayInputStream(c14nOutputbytes);
retDoc = parser.parse(bais);
Другие вещи будут изменены, когда, конечно, Canonicalizing (он станет Canonical XML http://en.wikipedia.org/wiki/Canonical_XML), поэтому просто ожидайте некоторые изменения, отличные от порядка атрибутов.