Altova DiffDog Server 2025 

Al comparar archivos en modo XML (configurado con la opción CLI --mode=xml), solo puede ver el informe de comparación en formato XML (--output-mode=xml). Para entender cómo se comunican las diferencias en formato XML, supongamos que hay que comparar los dos archivos XML siguientes en paralelo.

 

<book id="1">  
  <author>Mark Twain</author>
</book>

<book id="2">
  <author>Franz Kafka</author>
</book>

 

Podemos ver que hay dos diferencias: (i) en el valor del atributo id del elemento book en la línea 1; y (ii) en el contenido de texto del elemento author en la línea 2.

 

En DiffDog Server, puede ejecutar el siguiente comando para comparar estos dos archivos XML y recibir un informe de comparación en formato XML.

 

diffdogcmdlclient diff file1.xml file2.xml --mode=xml --output-mode=xml --output-file=report.xml

 

La opción --mode trata los archivos comparados como XML (no como texto o archivos binarios).

La opción --output-mode para las comparaciones XML (modo) debe ser XML.

La opción --output-file especifica la ruta al archivo de informe generado.

Dado que no existe la opción --quiet=true, el informe de comparación se generará tanto en la línea de comandos como en un archivo de salida. Consulte «Formatos de informe» en el tema Resultados de la comparación.

 

Informe XML

En el informe XML que se genera tras ejecutar la comparación las diferencias se reflejan así:

 

<?xml version="1.0" encoding="UTF-8"?>
<!-- Differencing export generated by Altova DiffDog Server -->
<diff_result>
  <diff_info comparison_mode="xml">
     <source_left name="c:\file1.xml" uri="file:///c:/file1.xml"/>
     <source_right name="c:\file2.xml" uri="file:///c:/file2.xml"/>
  </diff_info>
  <xml_diff>
     <left_location>
        <parent xpath="/book"/>
        <position>1</position>
     </left_location>
     <right_location>
        <parent xpath="/book"/>
        <position>1</position>
     </right_location>
     <left_content>
        <attribute id="1"/>
     </left_content>
     <right_content>
        <attribute id="2"/>
     </right_content>
  </xml_diff>
  <xml_diff>
     <left_location>
        <parent xpath="/book/author"/>
        <position>1</position>
     </left_location>
     <right_location>
        <parent xpath="/book/author"/>
        <position>1</position>
     </right_location>
     <left_content>
        <element>Mark Twain</element>
     </left_content>
     <right_content>
        <element>Franz Kafka</element>
     </right_content>
  </xml_diff>
</diff_result>

 

Los siguientes puntos describen el informe XML:

 

El elemento diff_info de la parte superior proporciona información sobre los archivos comparados, incluyendo el modo de comparación utilizado y las rutas de los archivos comparados. Es un elemento que aparece solamente una vez. (El atributo comparison_mode indica el valor suministrado para la opción --mode en la línea de comandos, o el valor predeterminado de la opción si no se suministró ningún valor en la línea de comandos).

Los elementos xml_diff detallan las diferencias XML encontradas. Sus elementos secundarios left_location y right_location, localizan cada uno el nodo principal del nodo que contiene la diferencia.

El nodo parent tiene un atributo xpath que da una expresión localizadora XPath del nodo principal. Y el elemento position da la posición del principal dentro de su conjunto de nodos de contexto.

En la primera diferencia (ver archivos XML al principio de este tema), el nodo que contiene la diferencia es el atributo id del único elemento book. Por lo tanto, el elemento principal del nodo @id es book, es decir, el elemento /book en la posición 1 (ya que sólo hay un elemento book; es el único elemento raíz del documento).

En la segunda diferencia (ver archivos XML al principio de este tema), el nodo que contiene la diferencia es el nodo de texto del único secundario author del elemento book. El elemento principal de este nodo de texto, por tanto, es el nodo author en la posición 1 del conjunto de nodos devuelto por la expresión localizadora /book/author.

Los elementos left_content y right_content, respectivamente, contienen los nodos que son diferentes en cada xml_diff. En nuestro ejemplo anterior, observe que, en el primer xml_diff, el nodo que es diferente es el atributo id de /book, mientras que en el segundo xml_diff, es el contenido de texto del elemento author el que es diferente.

 

© 2019-2025 Altova GmbH