XML : la syntaxe abrégée
XML est vendu à toutes les sauces, que l’on parle du très médiatique Web2 avec son XMLHTTPRequest ou du basique XHTML … De quoi s’agit-il en fait ?
Il s’agit d’un très basique language, quasiment sans règles de codification, à l’exception d’une poignées de conventions, mais qui a l’avantage de permettre à chaque developpeur de créer ses propres balises (évocatrices pour lui).
L’interet ? Ce sont des "mini bases des données" qui permettent de stocker temporairement des variables, pour les traiter ensuites dans un contexte second.
Un exemple? Je stocke les titres des posts que font les usagers de mon forum, et aussitot je les récupère pour les afficher sur ma page d’accueil… C’est plus simple et souple de les stocker dans un fichier texte, que je peux exporter par ailleurs, que dans une base MySQL ou autre !
Un second interet est de permettre la création de "parseurs" (ou lecteurs de ce code) de différentes sortes, qui afficheront différemment ce code selon leur espèce. Tel parseur affichera la balise "<notedemusique>" comme un champ de texte, tel autre en fera un son, tel autre enfin un dessin sur une portée…
Certaines balises peuvent prendre des valeurs plus universelles destinées à des "parseurs" couremment utilisés, comme par exemple un navigateur web (IE, Firefox…). Les conventions de code alors utilisées sont annoncées dans la déclaration de type de document appelée "DOCTYPE" et déclarée ainsi en tête de fichier :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
(l’exemple ici est celui d’un déclaration de document pour une page XML destinée à un affichage sur un navigateur web.
Lorsqu’elle est en tête d’un fichier, un navigateur saura qu’une balise <table> ouvre un tableau et non… une liste de meubles!)
la syntaxe :
Les fichiers utilisant la syntaxe XML 1.0 commencent tous avec un en-tête particulier, que l’on appelle "prologue XML" :
<?xml version="1.0" encoding="iso-8859-1"?>
C’est la seule balise du fichier à être encadré par <?xml … ?>. Les attributs XML sont le plus souvent autodescriptifs : ici, version donne la version de la syntaxe, et encoding l’encodage des caractères du fichier. iso-8859-1 peut être remplacé par utf-8, Shift_JIS ou tout autre encodage standard
Les balises XML s’utilisent comme XHTML, en toute-bonne logique : une balise contenant des informations doit être fermée par une autre balise ; une balise ne contenant pas d’information doit être autofermée. Toutes les balises sont contenues dans une balise racine, qui décrit le plus souvent le cadre d’application du fichier.
1. <?xml version="1.0" encoding="utf-8"?>
2. <contacts>
3. <contact id="1">
4. <nom>La Pain Rôze</nom>
5. <mails>
6. <mail adresse="lapinou@terrier.ca" />
7. <mail adresse="ninja@tortue.net" />
8. </mails>
9. <accepteLaPub />
10. </contact>
11. <contact id="2">
12. <!– commentaire –>
13. </contact>
14. <contacts>
Notez que XML est sensible à la casse, que les valeurs des attributs doivent être entre guillemets, et que les caractères spéciaux (<, >, &, ‘ et ") doivent être spécifiés sous la forme d’entités XML (donc respectivement, <, >, &, ‘ et ").
Voilà, tout est dit, celà est suffisant pour concevoir une mini base des données pour stocker des informations légères (flus RSS, préférences des utilisateurs, etc…)
C’est vrai que c’est très pratique. Avec un flux, on peut mettre à jour tous ses réseaux sociaux d’un coup. Au top !