Mise en lumière de la bibliothèque EXML

NOTA : en cours de rédaction.

Voir également le logiciel expp (http://zeusw.org/epeios/software/expp/), qui est basé sur cette bibliothèque.

Introduction

Cette bibliothèque permet d'analyser un flux XML standard et étendu, ainsi que de génèrer un flux XML standard (la source et la destination d'un flux peut, entre autres, être un fichier).

Un flux XML étendu est un flux XML pouvant comprendre certains mot-clefs particuliers, que l'on affecte à un namespace de son choix, facilitant l'écriture manuelle de fichiers XML. Par exemple, avec le mot-clef define, on peut affecter un identifiant à un arbre XML, arbre que l'on peut ensuite placer n'importe où, et à plusieurs endroits, dans le fichier à l'aide du mot-clef expand (un comportement similaire à ce qu'on appelle des macros). Cela sera décrit plus en détails, ainsi que la mise en oeuvre d'autres mots-clefs, ultèrieurement.

Il est à noter que l'intégralité des spécifications XML n'est pas implémentée. Par exemple, les CDATA ne sont pas traités. Cette bibliothèque a été crée essentiellement pour gèrer des fichiers XML écrits à la main, comme des fichiers de configuration. Les flux XML génèrés par cette bibliothèque peuvent être traités par n'importe quel analyseur XML (de tels flux servent couramment d'entrée pour sablotron (http://www.gingerall.org/sablotron.html), par exemple).

Analyse d'un flux

L'analyse d'un flux est réalisé par une classe callback. Cette classe comporte un certains nombre de méthode à surcharger par l'utilisateur.

  • XMLStartTag() est appelé pour chaque balise ouvrante,
  • XMLStartTagClosed() est appelée lors de la fermeture d'une balise ouvrante (avant la lecture de l'éventuelle valeur, de la balise fermante correspondante ou d'une nouvelle balise ouvrante),
  • XMLAttribute() est appelé pour chaque attribute.
  • XMLValue() est appelé pour chaque valeur,
  • XMLEndTag() est appelé pour chaque balise fermante, ou à la fermeture d'une balise sans contenu (syntaxe <balise />).

(template)

highlights/exml/main.txt · Last modified: 2007/04/15 18:42 by 192.168.5.50
 
Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki