Outil ou bibliothèque pour comparer des fichiers xml

Je recherche un outil de comparaison XML qui comprend xml. Ce ne peut être une comparaison ligne par ligne comme WinMerge ou Beyond Compare.

Une solution idéale serait celle qui montre des changements similaires à la façon dont Word 2007 affiche les changements de piste. DeltaXML fait cela, mais ne dispose pas d’une véritable interface graphique prête à l’emploi et coûte 500 dollars par utilisateur!

http://soffr.miximages.com/comparison/os8k5k.jpg

ExamXml fonctionne parfaitement , mais affiche les différences de manière confuse. Il n’a pas de concept d’avant et d’après, il montre simplement les différences:

alt text http://soffr.miximages.com/comparison/examxml1_.gif

L’outil devrait avoir pour concept d’utiliser des atsortingbuts en tant que clé, de sorte qu’il ne pense pas qu’une liste d’éléments réorganisés ait changé. DeltaXML le fait, mais je n’ai pas réussi à le configurer correctement pour la capture d’écran.


METTRE À JOUR:

Jusqu’à présent, ExamlXML est la solution idéale . Mais il manque les concepts de gestion du changement de DeltaXML. Cela entraîne des problèmes d’utilisabilité.

DeltaXML est à peu près la solution dont j’ai besoin, mais quelque chose de plus fonctionnel serait préférable. DeltaXML nécessite d’écrire du code Java pour appeler l’API, tout en écrivant XSL pour transformer le fichier XML en entrée attendue.

Si je comprends votre problème, vous avez probablement une application qui utilise des fichiers XML en tant que stockage de données et l’interface graphique extrait les noms de balises «techniques» en étiquettes «conviviales» – encore une fois, je suppose. Il serait donc naturel de voir les différences de la même manière. Je suppose également que votre application ne possède pas de facilité diff qui suit le concept “d’abstraction”.

J’ai fait quelques recherches et trouvé une application ( ExamXML ) qui semble se rapprocher des fonctionnalités de mise en évidence. J’ai téléchargé la version d’évaluation et testé vos fichiers par rapport à cela:

http://www.programmedintheusa.com/images/stack547399.png

Il fait un très bon travail en soulignant les différences. Il semble assez interactif et affiche combien de différences. Il semble que vous puissiez changer les couleurs utilisées, alors peut-être que vous pouvez utiliser des gris et des blancs pour réduire les étiquettes. Il semble également y avoir beaucoup d’options que vous pouvez pré-configurer pour vos utilisateurs.

Je tiens à noter que vous aurez du mal à trouver un outil de comparaison XML qui ne montrera pas les noms de balises, car les balises sont ce qui donne le contexte du contenu. Si vous enlevez le contexte, il devient difficile de comprendre les données affichées. Quoi qu’il en soit, cet outil pourrait être utile. Avez-vous également essayé de montrer à vos utilisateurs certains de ces outils et de voir ce qu’ils sont prêts à tolérer, parfois ils peuvent vous surprendre. J’espère que cela t’aides!

Je suis très surpris que personne n’ait mentionné le bloc-notes XML de Microsoft

C’est gratuit et cela peut créer une très bonne comparaison, en indiquant quels éléments / atsortingbuts ont été modifiés, déplacés, supprimés, etc.:

(Désolé si les captures d’écran sont un peu larges).

Vous pouvez également appliquer XLSes au fichier XML et effectuer diverses opérations d’édition. Cela vaut la peine d’essayer.

DiffMerge de SourceGear est gratuit pour un seul utilisateur:

http://www.sourcegear.com/diffmerge/

Je pourrais essayer DeltaXML + une transformation XSLT pour obtenir le résultat souhaité. Un problème avec l’utilisation des outils de comparaison en texte brut avec XML est que la forme physique d’un document XML (son retrait, etc.) peut changer même si le contenu lui-même ne fonctionne pas, ce qui peut entraîner de nombreux faux positifs. DeltaXML est un très bon outil pour comparer des fichiers XML basés sur des documents.

En outre, en fonction de l’éditeur utilisé par vos utilisateurs, il peut comporter une différenciation XML intégrée. Par exemple, Arbortext Editor possède un bon outil qui affiche le texte (pas les balises) avec les modifications surlignées / barrées.

Altova diffDog XML Spy et diffDog sont des outils exceptionnels. Les soulever de mes mains mortes froides, un peu de choses.

Beyond Compare est excellent, comme l’a déjà mentionné @BobbyShaftoe. Pour fusionner cependant, j’aime utiliser Araxis Merge . Nous l’utilisons souvent à des fins similaires.

En ce qui concerne votre commentaire sur la capacité non technique de vos utilisateurs:

Merci pour les réponses … Mais tout cela semble trop technique. Mes utilisateurs ne voient normalement pas les balises XML car leur outil de création XML les élimine. Existe-t-il des outils qui affichent des différences dans le contenu du texte, mais n’affichent pas (ou ne désaltèrent pas) les balises XML.

Je vais lancer ceci: vos utilisateurs doivent apprendre. Si vous faites en sorte qu’ils fusionnent et modifient des fichiers XML – je suppose que cela est possible pour la conservation des enregistrements ou la configuration des applications – ils doivent au moins avoir une compréhension rudimentaire de ce qu’ils font. Ce ne sont pas nécessairement des XML pour utiliser les outils listés et faire le travail.

Si, toutefois, il est impossible que vos utilisateurs aient une connaissance rudimentaire du travail qu’ils effectuent, alors je vous conseille de rédiger vous-même un utilitaire de configuration et de le fournir à vos utilisateurs finaux, plutôt que de vous fier à un logiciel tiers.

Essayez XML Notepad à partir de Microsoft MSDN XML, il a une comparaison des fichiers XML. Aucune idée de sa qualité.

Avez-vous essayé examdiff ? Bien sûr, c’est toujours un outil technique, mais il est facile de travailler avec. Il a une interface glisser-déposer pour comparer des fichiers.

Vous pouvez trouver L’outil d’interface graphique et de correctif XML (exemple de code sur MSDN) répond un peu mieux à vos besoins: il affiche toujours les balises, mais souligne la différence de texte. Comme vous obtenez le code, pour un peu plus d’effort, vous pouvez l’adapter plus précisément à vos besoins.

Bien que l’échantillon soit relativement âgé (juillet 2004, et a ses racines en 2002), il effectue une mise à niveau sans problème vers Visual Studio Express C # 2008. Ne vous laissez pas décourager lors du téléchargement de l’ échantillon depuis le site MSDN si / lorsque le programme d’installation MSI mentionne «SQLXML Bulkload dans l’exemple de code .NET» – ce n’est pas le cas!

Que ce soit par programmation ou avec interface utilisateur, vous pouvez utiliser XmlDiff, les outils XmlPatch et la bibliothèque depuis MSDN. Pour plus de détails sur son fonctionnement, consultez le guide.

http://msdn.microsoft.com/en-us/library/aa302294.aspx

Oxygen XML Editor dispose de la meilleure collection d’outil XML diff que j’ai trouvée. Il y a plusieurs algorithmes différents pour la comparaison, donc si la valeur par défaut ne fonctionne pas pour vous, essayez Syntax Aware ou certains des autres algorithmes (maintenant, j’utilise la version 8 et je n’ai pas mis à niveau vers la version 10 alors ymmv, mais je doute que le diff XML a empiré).

Je sais que c’est un thread ancien, mais Project: Merge est une nouvelle application Windows qui peut gérer des fusions et des comparaisons bidirectionnelles et à trois voies de fichiers XML. (Une opération à trois suppose que deux fichiers sont dérivés d’un fichier de base commun.)

Vous devrez peut-être indiquer comment identifier les éléments individuels pour travailler parfaitement sur vos fichiers, mais c’est assez simple à faire et vous ne devrez le faire qu’une seule fois.

J’utilise toujours kdiff3. Il est facile à utiliser et peut comparer jusqu’à 3 fichiers. http://kdiff3.sourceforge.net/