Comparación de esquemas XML con DiffDog 2010
DiffDog 2010 incluye una nueva y potente herramienta para comparar esquemas XML, que los desarrolladores de XML y otros pueden utilizar para actualizar archivos de datos XML existentes a medida que los esquemas XML evolucionan. Esta publicación analiza un ejemplo de uso de esta función. Antes de explorar la nueva funcionalidad, veamos rápidamente dos esquemas XML utilizando la función Comparador de archivos DiffDog. Como en versiones anteriores, los usuarios de DiffDog 2010 pueden comparar esquemas XML como documentos .xsd y mostrar las diferencias en un formato con código de colores y que comprende la estructura XML.
![]()
Esta es una buena manera de identificar y gestionar las diferencias en los esquemas XML, especialmente cuando se desea revisar las modificaciones de los esquemas XML estándar de la industria que evolucionan con el tiempo.¿Qué hay de nuevo en DiffDog 2010 es una función adicional Diferenciación de esquemas XML Esta opción muestra gráficamente dos esquemas XML uno al lado del otro, identifica automáticamente los elementos idénticos y permite a los usuarios identificar las diferencias y generar transformaciones XSL para actualizar los archivos de datos XML. Aquí se muestra la primera vista que obtenemos al abrir los mismos dos esquemas XML que se muestran en la comparación de archivos anterior, utilizando la nueva función de comparación de esquemas XML.
![]()
Los elementos raíz de los dos esquemas XML se conectan automáticamente. Podemos hacer clic en el botón "Comparar" en la barra de herramientas para conectar automáticamente los elementos idénticos en los dos esquemas XML.
![]()
(Por supuesto, también podemos seleccionar "Comparar esquemas XML" desde el menú contextual al hacer clic derecho, o elegir "Iniciar comparación" desde el menú "Diferencias y combinación", o presionar el atajo de teclado F5. DiffDog le ofrece muchas opciones para realizar la misma tarea, para que pueda trabajar de la manera que prefiera).
A continuación, podemos relacionar elementos con nombres diferentes en los dos esquemas XML conectando manualmente las flechas entre ellos. En este ejemplo, la mayoría de los cambios en la versión del esquema XML de la derecha simplemente asignan nuevos nombres a los elementos, lo que será más claro cuando el esquema XML y sus archivos de datos se distribuyan dentro de nuestra empresa.
![]()
Una vez que todos los elementos están mapeados, podemos generar un archivo XSLT para transformar archivos de datos XML existentes, basándonos en el esquema XML que se muestra a la izquierda, con el fin de reflejar las modificaciones presentes en la versión más reciente que se muestra a la derecha. Esta función está diseñada para ayudar a los desarrolladores de XML a evitar las tareas tediosas de escribir y depurar transformaciones XSL manualmente.
![]()
Aquí hay un ejemplo de un archivo de datos XML original, basado en el esquema XML que se muestra a la izquierda, tal como se visualiza en Altova XMLSpy:
![]()
El archivo de salida, después de aplicar la transformación XSL que creamos con DiffDog 2010, se muestra a continuación. Observe la sustitución del elemento "autor" por "escritor", "correo electrónico" por "comentarios", y así sucesivamente.
![]()
Si existen muchos archivos XML que necesitan ser transformados, las funciones de gestión de proyectos de XMLSpy pueden ayudarnos a automatizar el proceso. Podemos añadir carpetas externas a un proyecto de XMLSpy.
![]()
Utilizando el cuadro de diálogo de propiedades de XMLSpy para cada carpeta de proyecto, podemos asignar valores predeterminados para especificar un esquema XML para la validación, la transformación XSL y el destino del resultado.
![]()
Ahora podemos seleccionar la carpeta de entrada en la ventana de utilidad del proyecto XMLSpy y transformar todos los archivos que contiene con el atajo de teclado F10. Cuando originalmente mapeamos los elementos del esquema XML en DiffDog, dejamos el elemento de publicación sin conectar en el lado izquierdo, ya que no tenía un elemento correspondiente en la versión anterior del esquema. Esto significa que, cuando transformamos archivos de entrada XML utilizando XSLT, la salida resultante no incluirá el elemento de publicación. Si la publicación es un elemento obligatorio, podemos utilizar Altova MapForce para una solución rápida. Una de las opciones en DiffDog es generar un mapeo de MapForce en lugar de un XSLT. Cuando elegimos esta opción, MapForce se inicia con nuestro mapeo de DiffDog ya cargado como un nuevo diseño de MapForce, como se muestra a continuación.
![]()
Es fácil mejorar la asignación añadiendo un valor constante como valor predeterminado para el elemento de publicación.
![]()
Ahora podemos guardar un archivo XSL desde MapForce que reutiliza todas las asignaciones de elementos que diseñamos originalmente en DiffDog y que además añade una constante. Cuando aplicamos el nuevo archivo XSL para transformar nuestro archivo de datos XML original, obtenemos un resultado que incluye el valor predeterminado para el elemento de publicación.
![]()
Esta publicación comenzó describiendo la nueva función de comparación de esquemas XML en DiffDog 2010. Al desarrollar un ejemplo sencillo, pero representativo de la realidad, se hizo evidente rápidamente que se podían realizar tareas adicionales de forma sencilla gracias a la estrecha integración con XMLSpy y MapForce.
Las tres herramientas mencionadas, y muchas más, están disponibles con importantes descuentos en el Altova MissionKit 2010, un conjunto integrado de herramientas para XML, bases de datos y UML, diseñado para satisfacer las diversas necesidades de desarrollo y gestión de datos de los arquitectos de software y desarrolladores de XML de hoy en día. Haga clic aquí para descargar una versión de prueba gratuita hoy mismo.