Enregistrer automatiquement un document WSDL en ligne avec ses dépendances

Lorsqu'une application ou un service expose un service web SOAP et publie son document de description d'interface en ligne, son document WSDL (Web Services Description Language), il peut être pratique d'enregistrer localement ce document, ainsi que tous les documents importés, que ce soit d'autres documents WSDL ou des schémas XML, tout en gardant les liens entre ces documents.

Avec la sauvegarde de tous les documents dépendants, ces derniers pourront aussi être transmis à un tiers qui, pour une raison ou une autre, n'a pas accès au document WSDL en ligne.

Ce travail est rendu possible grâce au script Groovy SaveWSDLFiles.groovy que j'ai développé et testé avec Groovy 2.5.7, et dont le lien figure en fin d'article ; pour l'exécuter, utilisez une commande de la forme suivante :

groovy SaveWSDLFiles <URL>

Les différents documents analysés par le script seront formatés et enregistrés dans le répertoire de sortie out créé dans le répertoire de travail en cours.

Note : j'ai utilisé une version du constructeur de la classe XmlParser sans support des namespaces XML, car dans le cas contraire, un peu étrangement, les déclarations de namespaces de l'élément document passaient à la trappe ; ce qui oblige à un peu de gymnastique pour la détection des imports de documents puisqu'il faut travailler avec des alias de namespaces pour sélectionner les bonnes balises.


Fichier(s) :