Al procesar XML mediante DOM estándar, no se garantiza el orden de los atributos después de serializar de nuevo. Por último, eso es lo que acabo de ver cuando uso la API java XML Transform estándar para serializar el resultado.Orden de los atributos XML después del procesamiento DOM
Sin embargo, debo mantener un orden. Me gustaría saber si hay alguna posibilidad en Java de mantener el orden original de los atributos de un archivo XML procesado por DOM API, o cualquier forma de forzar el orden (tal vez usando una API de serialización alternativa que te permita configurar esto tipo de propiedad). En mi caso, el procesamiento se reduce para alterar el valor de algunos atributos (no todos) de una secuencia de los mismos elementos con un conjunto de atributos, y tal vez insertar algunos elementos más.
¿Hay alguna manera "fácil" o tengo que definir mi propia hoja de estilo de transformación XSLT para especificar el resultado y alterar todo el archivo XML de entrada?
Actualización Debo agradecer todas sus respuestas. La respuesta parece ahora más obvia de lo que esperaba. Nunca presté atención al orden de los atributos, ya que nunca lo había necesitado antes.
La razón principal para requerir un orden de atributo es que el archivo XML resultante solo parece diferente. El objetivo es un archivo de configuración que contiene cientos de alarmas (cada alarma está definida por un conjunto de atributos). Este archivo generalmente tiene pequeñas modificaciones con el tiempo, pero es conveniente mantenerlo ordenado, ya que cuando tenemos que modificar algo, se edita a mano. De vez en cuando, algunos proyectos necesitan ligeras modificaciones de este archivo, como establecer uno de los atributos para un código específico del cliente.
Acabo de desarrollar una pequeña aplicación para fusionar el archivo original (común a todos los proyectos) con partes específicas de cada proyecto (modificar el valor de algunos atributos), para que el archivo específico del proyecto reciba las actualizaciones definiciones o algunas correcciones de errores de valores de atributo). Mi principal motivación para exigir atributos ordenados es poder verificar el resultado de la aplicación nuevamente el archivo original por medio de una herramienta de comparación de texto (como Winmerge). Si el formato (principalmente el orden de los atributos) sigue siendo el mismo, las diferencias se pueden detectar fácilmente.
Realmente pensé que esto era posible, ya que los programas de manejo de XML, como XML Spy, le permiten editar archivos XML y aplicar algunos pedidos (modo cuadrícula). Tal vez mi única opción es utilizar uno de estos programas en manualmente modificar el archivo de salida.
* * ¿Por qué necesita para mantener un orden? La solicitud implica que está procesando el texto XML con herramientas que no se han creado para XML. Es ese el caso? – Tomalak
La solución a su problema establecido es escribir un programa que preproceses los archivos para comparar antes de compararlos. Tal programa pondría los atributos en un orden canónico. –
Commander @Tomalak, estoy procesando texto XML con herramientas que no se han hecho para XML: mis ojos. Xml también es un formato legible por humanos. –