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
- Copiez le dossier org.eclipse.compare.examples.xml dans le sous-dossier plugins d'Eclipse.
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 :
- en étendant le point d'extension idMapping ;
- en utilisant la page des préférences de la comparaison XML ;
- 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) :
- Le nom de l'élément.
- 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.
- Le nom de l'ID qui identifie l'élément.
- 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 :