Vous permet d'exporter n'importe quelle base de données vers un fichier XML.
Vous définissez la forme du document XML à l'aire d'un fichier de description.
Voici un extrait, vous en saurez plus en observant le fichier Zip :
--------------------------------------------------------------------------------------
© Copyright Ludovic Lenne - 2003
L'objet : LENNE.GenXML
Voyons comment exporter des données vers un fichier XML, avec GenXML.
Nous utiliserons pour ce tutoriel, une base Access ( MyDb.mdb ) ainsi que la Class GenXML. Cette base est constituées de cinq tables (auteurs, editeurs, ventes, titres, titre_auteur).
1 - Dans un premier temps nous allons exporter les titres parus chez les différents éditeurs. Le fichier XML prendra cette forme :
<catalogue>
<editeur name="nom">
<livres>
<titre>titre</titre>
...
</livres>
</editeur>
</catalogue>
Créons un fichier que nous allons nommer editeur_titres.gen. Les commentaires qui apparaissent ci-dessous ne doivent pas être dans le fichier finale.
// Définition de l'encodage du document XML.
[Encoding=iso-8859-1/]
// Définition de la version du document XML.
[Version=1.0/]
// Cette balise identifie le début de la description du document XML à créer.
[Gen]
// Racine du document XML
<catalogue>
// Cette balise indique que nous allons créer des enfants pour <catalogue>.
[ChildNodes]
// Cette balise indique la chaine de connexion à la base de données.
// Nous utiliserons toujours la même.
// Nous définirons la chaine de connexion plus tard dans le fichier php.
// Nous ferons donc ici appelle à la connexion par défaut.
[Connection/]
// Cette balise nous permet de spécifier la requête que nous allons faire dans la base de données.
// Nous allons récupérer les noms de différents éditeurs, et leur identifiants.
// Les identifiants sont ici nécessaires pour assurer la patérnité avec ses enfants.
[Source]SELECT editeurs.pub_name, editeurs.pub_id FROM editeurs[/Source]
// Nous n'avons ici aucun filtre à effectuer sur les données récupérées.
[Where/]
// Définissons maintenant les enfants de catalogue.
// Cette balise définie le début de la desctiption des enfants de <catalogue>.
[Nodes]
// Nous decrivons l'enfant editeur de catalogue avec comme attribut son nom.
// [Value[pub_name]] indique où doit être insérer le nom de l'éditeur.
<editeur name="[Value[pub_name]]">
<livres>
// Indiquons maintenant les enfants de <editeur><livres>.
[ChildNodes]
[Connection/]
// Nous récupérons les titres des livres et les identifiants des éditeurs de ces livres.
// Les identifiants sont ici nécessaires pour assurer la descendance avec les parents éditeurs.
[Source]SELECT titres.title, titres.pub_id FROM titres[/Source]
// Nous allons à l'aide du filtre sélectionner les titres pour chaque éditeur.
[Where]pub_id = '[Value[pub_id]]' [/Where]
// Définissons maintenant les enfants de <editeur>.
// Cette balise défini le début de la desctiption des enfants de <editeur><livres>.
[Nodes]
// [Value[title]] indique où doit être insérer les titres des livres de l'éditeur.
// [Value[title]] est égal à la valeur du champ [title].
<titre>[Value[title]]</titre>
// Fermons la description des titres
[/Nodes]
// Fermons la liste des titres
[/ChildNodes]
</livres>
</editeur>
// Fermons la description des editeurs
[/Nodes]
// Fermons la liste des editeurs
[/ChildNodes]
</catalogue>
// Fermons la description du document XML
[/Gen]
Dans la construction du fichier Gen, vous aurez constaté que les relations sont traitées en dehors de la requête. C'est à dire sans INNER JOIN, qui est remplacé par [Where], qui définit ainsi la relation de hiérachie entre noeuds enfants et parents.
etc...