EXPP (Epeios XML Preprocessor)

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.

Introduction

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).

Statut

  • Dernière version stable (au 15/04/2007) : 0.1.1

Les balises

Les balises sont détaillés sur cette page-ci. Vous y trouverez également un exemple d'utilisation.

A faire

  • Lors d'une erreur XML dans le flux d'entrée, ne pas se limiter à l'affichage de la position de l'erreur, mais complèter par un message donnant la nature de l'erreur.
  • Ajouter la possibilité de définir des paramètres pour xpp:define (et évidemment xpp:expand) ?
  • Ajouter la possibilité de définir une (des) variables (reconnue(s) par xpp:ifeq) en tant qu'argumment de la commande.

Remarques

Il manque la gestion des DOCTYPE. Exemples :

<!DOCTYPE greeting SYSTEM "hello.dtd">
<!DOCTYPE greeting [
  <!ELEMENT greeting (#PCDATA)>
]>
<!DOCTYPE nimportequoi [
<!ENTITY nbsp "&#160;">
]>

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.

Ressources

 
software/expp.txt · Dernière modification: 2007/04/15 18:22 par 192.168.5.50
 
Recent changes RSS feed Creative Commons License Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki