NOTA : pour toucher un plus vaste public, une section an langue anglaise consacrée à cet utilitaire existe à l'adresse http://zeusw.org/intl/expp/. Parce que maintenir deux sections représente trop de travail pour une seule personne, en fonction des retours, l'une de ces deux sections sera abandonnées au profit de l'autre.
expp est un préprocessor qui analyse un flux au format XML pour réaliser certaines transformations en fonctions de balises prédéfinies appartenant à un namespace donné (configurable ; xpp par défaut). Ces balises permettent de mettre en oeuvre des macros, de définir des variables, d'en tester leur valeur pour influer sur le contenu du fichier génèré, d'inclure des fichiers, etc. (liste non exhaustive est amenée à s'étendre au fur et à mesure de l'évolution du logiciel). Le résultat de la transformation est elle-même au format XML.
Cet utilitaire a été conçu, au départ, pour faciliter le test d'une bibliothèque sous-jacente (la bibliothèque XML), et comme exemple de mise en oeuvre de cette bibliothèque, mais son utilisation a, depuis, et de loin, dépassé ce cadre. La bibliothèque XML, ainsi que ce logiciel, sont diffusés sous licence GNU GPL (d'autres licences sont envisageables ; me contacter pout plus de renseignements).
L'exécutable Windows est fournit avec l'archive (expp.exe). Pour l'exécutable linux (ou pour génèrer l'éxécutable à partir de cygwin), lancer la commande make dans le répertoire dans lequel vous avez décompressée l'archive (idem pour Mac ; pas tester faute de machine).
Les balises sont détaillés sur cette page-ci. Vous y trouverez également un exemple d'utilisation.
xpp:define (et évidemment xpp:expand) ?xpp:ifeq) en tant qu'argumment de la commande.
Il manque la gestion des DOCTYPE. Exemples :
<!DOCTYPE greeting SYSTEM "hello.dtd">
<!DOCTYPE greeting [ <!ELEMENT greeting (#PCDATA)> ]>
<!DOCTYPE nimportequoi [ <!ENTITY nbsp " "> ]>
Il manque également la gestion des CDATA. Exemple :
<![CDATA[<greeting>Hello, world!</greeting>]]>
Comme je n'ai jamais eu besoin de ces élément à titre personnel (dans le contexte de l'utilisation de ce logiciel ou de la bibliothèque XML), ils ne seront pas traités dans l'immédiat, sauf demandes multiples.