A resposta de Jukka não funcionou para mim, mas apontou para o XML canônico. Nem - c14n nem - c14n11 classificou os atributos, mas eu encontrei o - exc-c14n switch fez classificar os atributos. - exc-c14n não está listado na página man, mas é descrito na linha de comando como "formato canônico exclusivo do W3C".
$ xmllint --exc-c14n one.xml > 1.xml
$ xmllint --exc-c14n two.xml > 2.xml
$ diff 1.xml 2.xml
$ xmllint | grep c14
--c14n : save in W3C canonical format v1.0 (with comments)
--c14n11 : save in W3C canonical format v1.1 (with comments)
--exc-c14n : save in W3C exclusive canonical format (with comments)
$ rpm -qf /usr/bin/xmllint
libxml2-2.7.6-14.el6.x86_64
libxml2-2.7.6-14.el6.i686
$ cat /etc/system-release
CentOS release 6.5 (Final)
Atenção - exc-c14n retira o cabeçalho xml enquanto o --c14n preenche o cabeçalho xml se não estiver lá.