Comparer des schémas XML avec DiffDog 2010

DiffDog 2010 intègre un nouvel outil puissant pour comparer les schémas XML, que les développeurs XML et d'autres peuvent utiliser pour mettre à jour les fichiers de données XML existants, compte tenu de l'évolution des schémas XML. Cet article examine un exemple d'utilisation de cette fonctionnalité.

Avant de nous plonger dans cette nouvelle fonctionnalité, examinons rapidement deux schémas XML à l'aide de la fonctionnalité Comparaison de fichiers DiffDog. Comme dans les versions précédentes, les utilisateurs de DiffDog 2010 peuvent comparer les schémas XML sous forme de fichiers .xsd et afficher les différences dans un format adapté aux schémas XML, avec un codage couleur.

C'est une bonne méthode pour identifier et gérer les différences entre les schémas XML, en particulier lorsque vous souhaitez examiner les modifications apportées aux schémas XML standard de l'industrie, qui évoluent au fil du temps.Quoi de neuf Dans DiffDog 2010, il s'agit d'une fonctionnalité supplémentaire Différenciation des schémas XML Cette option affiche graphiquement deux schémas XML côte à côte, identifie automatiquement les éléments identiques et permet aux utilisateurs de mettre en évidence les différences et de générer des transformations XSL pour mettre à jour les fichiers de données XML. Voici la première vue qui s'affiche lorsque nous ouvrons les deux mêmes schémas XML présentés dans la comparaison de fichiers ci-dessus, en utilisant la nouvelle fonctionnalité de comparaison de schémas XML.

Les éléments de base des deux schémas XML sont automatiquement liés. Nous pouvons cliquer sur le bouton "Comparer" dans la barre d'outils pour établir automatiquement des liens entre les éléments identiques dans les deux schémas XML.

(Bien sûr, nous pouvons également sélectionner l'option "Comparer les schémas XML" dans le menu contextuel qui s'affiche en faisant un clic droit, ou choisir "Démarrer la comparaison" dans le menu "Différences et fusion", ou appuyer sur la touche F5 – DiffDog vous offre de nombreuses options pour effectuer la même tâche, afin que vous puissiez travailler de la manière qui vous convient le mieux.)

Ensuite, nous pouvons faire correspondre des éléments ayant des noms différents dans les deux schémas XML en connectant manuellement les flèches entre eux. Dans cet exemple, la plupart des modifications apportées à la version du schéma XML à droite consistent simplement à donner de nouveaux noms aux éléments, ce qui sera plus clair lorsque le schéma XML et ses fichiers de données seront distribués au sein de notre entreprise.

Une fois que tous les éléments sont définis, nous pouvons générer un fichier XSLT pour transformer les fichiers de données XML existants, en nous basant sur le schéma XML de gauche, afin de refléter les modifications apportées dans la version plus récente, située à droite. Cette fonctionnalité est conçue pour aider les développeurs XML à éviter les tâches fastidieuses de rédaction et de débogage manuel des transformations XSL.

Voici un exemple de fichier de données XML original, basé sur le schéma XML présenté sur la gauche, tel qu'il apparaît dans Altova XMLSpy :

Le fichier de sortie, obtenu après l'application de la transformation XSL que nous avons créée avec DiffDog 2010, est présenté ci-dessous. Notez le remplacement de l'élément "author" par "writer", de "email" par "feedback", et ainsi de suite.

Si de nombreux fichiers XML existants doivent être transformés, les fonctionnalités de gestion de projet de XMLSpy peuvent nous aider à automatiser ce processus. Nous pouvons ajouter des dossiers externes à un projet XMLSpy.

Grâce à la boîte de dialogue des propriétés de XMLSpy pour chaque dossier de projet, nous pouvons attribuer des valeurs par défaut pour spécifier un schéma XML pour la validation, la transformation XSL et la destination du résultat.

Maintenant, nous pouvons sélectionner le dossier d'entrée dans la fenêtre d'assistance du projet XMLSpy et transformer tous les fichiers qu'il contient en utilisant le raccourci F10, qui ne nécessite qu'une seule touche. Lorsque nous avons initialement mappé les éléments du schéma XML dans DiffDog, nous avons laissé l'élément de publication non connecté du côté gauche, car il n'avait pas d'élément correspondant dans la version précédente du schéma. Cela signifie que lorsque nous transformons les fichiers XML en utilisant XSLT, la sortie résultante ne contiendra pas l'élément de publication. Si la publication est un élément obligatoire, nous pouvons utiliser Altova MapForce pour une solution rapide.

L'une des options dans DiffDog est de générer un mappage MapForce plutôt qu'un XSLT. Lorsque nous choisissons cette option, MapForce se lance avec notre mappage DiffDog déjà chargé en tant que nouveau projet MapForce, comme illustré ci-dessous.

Il est facile d'améliorer la correspondance en ajoutant une valeur constante comme valeur par défaut pour l'élément de publication.

Maintenant, nous pouvons enregistrer un fichier XSL à partir de MapForce qui réutilise toutes les correspondances d'éléments que nous avions initialement conçues dans DiffDog, et qui ajoute une constante. Lorsque nous appliquons ce nouveau fichier XSL pour transformer notre fichier de données XML original, nous obtenons un résultat qui inclut la valeur par défaut pour l'élément de publication.

Cet article a commencé par décrire la nouvelle fonctionnalité de comparaison de schémas XML intégrée à DiffDog 2010. L'étude d'un exemple simple, mais typique, tiré de la réalité a rapidement mis en évidence des tâches supplémentaires qui peuvent être facilement réalisées grâce à l'intégration étroite avec XMLSpy et MapForce.

Les trois outils mentionnés, ainsi que d'autres, sont disponibles à des prix avantageux dans la suite logicielle intégrée Altova MissionKit 2010, qui regroupe des outils XML, de bases de données et UML, conçus pour répondre aux divers besoins de développement et de gestion des données des architectes logiciels et des développeurs XML d'aujourd'hui. Cliquez ici pour télécharger une version d'essai gratuite dès aujourd'hui !