Comparaison XML de la plateforme IBM Eclipse

Le plug-in Comparaison XML permet d'effectuer une comparaison structurelle de deux documents XML. Il renvoie une arborescence des différences qui indique les éléments XML ajoutés ou supprimés et, pour les éléments XML modifiés, les différences en matière d'attributs ou de texte du corps.

Installation du plug-in

Utilisation du plug-in

Le plug-in est automatiquement utilisé lors de la comparaison des fichiers d'extension .xml.
Par défaut, la comparaison XML utilise la méthode de comparaison Unordered, qui ignore l'ordre suivant lequel les éléments XML apparaissent dans le document et les fait correspondre de sorte que les éléments qui se ressemblent le plus soient mis en correspondance. Il existe également une méthode de comparaison Ordered, qui ne fait que comparer les éléments XML exactement suivant l'ordre dans lequel ils apparaissent dans le document. Dans la plupart des cas, cette méthode de comparaison n'est pas très utile.
La méthode de comparaison peut être modifiée à partir d'une liste déroulante de la barre d'outils de la vue Structure.

Lorsqu'un document XML contient des éléments qui peuvent être identifiés par un attribut ou par le texte d'un élément enfant, il est recommandé de créer un schéma de mappage des ID pour ce type de document XML.

Pour plus d'informations sur l'utilisation du plug-in, voir Tutoriel et exemples.

Schémas de mappage des ID

Un schéma de mappage des ID spécifie pour les éléments XML un attribut ou le texte d'un élément enfant qui identifie cet élément. Cela garantit que, lors de la comparaison, les éléments appropriés sont mis en correspondance et donc comparés les uns aux autres. Si aucun mappage des ID n'est spécifié pour un élément XML, un algorithme de correspondance général est utilisé. Toutefois, cet algorithme ne renvoie pas toujours le résultat escompté. En effet, l'algorithme général de correspondance recherche une occurrence entre les noeuds des deux arborescences analysées à comparer qui minimise les différences. Par conséquent, il arrive souvent que deux éléments XML dont la structure est similaire soient mis en correspondance, alors qu'il s'agit de deux entités d'information complètement différentes.

Entrées triées

Lorsque vous utilisez la comparaison par défaut "Unordered" (avec ou sans mappage des ID), il est parfois préférable d'indiquer que les enfants de certains éléments soient comparés une fois triés, plutôt que non triés (méthode standard). Par exemple, lorsque vous comparez des fichiers ANT, l'ordre d'apparition des enfants des éléments cible est important.
Dans ce cas, il est possible de créer une entrée triée. Une entrée triée spécifie que les enfants directs d'un élément xml, identifié par son chemin, sont comparés une fois triés (les attributs sont toutefois comparés non triés). Les enfants de ces enfants continuent d'être comparés non triés, sauf mention contraire.

Définition des schémas de mappage des ID et entrées triées

Les schémas de mappage des ID peuvent être créés de trois manières différentes :
  1. en étendant le point d'extension idMapping ;
  2. en utilisant la page des préférences de la comparaison XML ;
  3. en utilisant le bouton de création d'un schéma de mappage des ID de la barre d'outils et le menu contextuel.
La méthode 1 crée un schéma de mappage interne. Un schéma interne de mappage des ID ne peut pas être édité lors de l'exécution. Toutefois, vous pouvez créer une copie modifiable du schéma interne de mappage des ID à l'aide du bouton Editer > Copier de la page des préférences.
Les méthodes 2 et 3 créent les schémas de mappage user. Ces schémas sont créés par l'utilisateur lors de l'exécution et peuvent être modifiés à tout moment dans la page des préférences.

Les schémas de mappage interne et utilisateur peuvent être associés à une extension de fichier. Il en résulte que lors de la comparaison de deux fichiers XML avec cette extension de fichier, le schéma de mappage des ID ayant cette extension est automatiquement utilisé.

Lors de la création ou de l'édition du mappage des ID pour un élément XML particulier, quatre éléments doivent être spécifiés (voir l'exemple) :

  1. Le nom de l'élément.
  2. Le chemin de l'élément. Il s'agit du chemin de l'élément de la racine du document XML au parent de l'élément.
  3. Le nom de l'ID qui identifie l'élément.
  4. Si le nom de l'ID (point 3) correspond au nom d'un attribut de l'élément ou au nom de l'un de ses enfants (le texte de cet élément enfant est alors utilisé comme ID).


Points d'extension

Un seul point d'extension est disponible dans le plug-in de la comparaison XML. Il permet de créer les schémas internes de mappage des ID :