Por lo que vale la pena, he creado una herramienta de Java (o Kotlin en realidad) para la eficiente y canonicalización configurable de archivos xml.
Siempre será:
- Ordenar nodos y atributos por su nombre.
- Eliminar espacios de nombres (sí, podría - hipotéticamente - ser un problema).
- Prettyprint el resultado.
Además se le puede decir a:
- eliminar una lista dada de nombres de nodo - tal vez usted no quiere saber que el valor de una pieza de metadatos - decir
<RequestReceivedTimestamp>
ha cambiado.
- Ordene una lista dada de colecciones en el contexto del padre - tal vez no le importe que el orden de las entradas
<Contact>
en <ListOfFavourites>
haya cambiado.
Utiliza XSLT y hace todo lo anterior de manera eficiente mediante el encadenamiento.
Limitaciones
Lo hace apoyo de clasificación listas anidadas - Clasificación de listas más internas antes de exterior. Pero no puede ordenar de manera fiable los niveles arbitrarios de listas anidadas recursivamente.
Si tiene tales necesidades puede, después de haber utilizado esta herramienta, comparar los conjuntos de bytes ordenados de los resultados. serán iguales si solo quedan problemas de clasificación de listas.
dónde conseguirlo
Usted puede obtener aquí: XMLNormalize