Introduction à XMLDate de publication : 16/09/2003 , Date de mise a jour : 06/07/2005
Par
Victor Stinner (home)
Tutoriel d'introduction pour XML (eXtensible Markup Language). I. Introduction I.A. Qu'est-ce que c'est ? I.B. Entête et encodage I.C. Exemple I.D. Règles à respecter II. Un exemple pour comprendre : un carnet d'adresse II.A. Représentation d'une personne II.B. Représentation du carnet d'adresse III. Caractères spéciaux et CDATA IV. Conclusion IV.A. Avantages IV.B. Désavantages IV.C. Mon avis I. IntroductionI.A. Qu'est-ce que c'est ?
XML est l'abréviation de Extensible Markup Language. Contrairement aux « on dit », XML n'est pas un langage de programmation. On ne peut pas faire de tests, ni inclure un fichier dans un autre. En très gros, XML sert uniquement à stocker des données.
XML est simplement une méthode pour représenter les données. Celles-ci sont écrites entre des balises ou sous forme d'attributs, et l'ensemble est écrit sous forme d'un arbre.
I.B. Entête et encodage
Les documents XML doivent posséder une première ligne qui est de la forme :
Cette ligne défini le numéro de version (ici 1.0), et l'encodage des caractères. Pour l'encodage, il existe principalement :
I.C. Exemple
Un document XML a une et une seule balise racine. Ici elle s'appelle pere :-) Une balise pour avoir un attribut, comme ici un nom. Les attributs sont un nom (chaîne de lettres A à Z, minuscule ou majuscule) dont la valeur est écrite en guillemets : nom="valeur". Une balise peut contenir du texte et/ou des balises "fils". On parle de balise parent (parent en anglais), et enfants (childrens) en référence aux arbres généalogiques. Une balise peut également être vide (ne contenir aucune données en dehors de son nom).
I.D. Règles à respecter
Pour écrire en XML, il existe quelques règles de base à respecter :
II. Un exemple pour comprendre : un carnet d'adresseII.A. Représentation d'une personne
L'exemple bidon mais classique : un carnet d'adresse. On va stocker une liste de personnes dont on possède différentes informations (nom, courriel, téléphone, etc.). Voyons déjà la représentation d'une personne. Représentation intuitive :
Cette représentation a un gros désavantage : on ne peut différencier le nom du prénom, et on ne peut retrouver le pays dans l'adresse. On peut alors utiliser une autre représentation :
La même adresse prend beaucoup plus de place et est plus longue à écrire. L'avantage ? Et bien, on peut correctement identifier les informations. On peut alors envisager d'effectuer un tri par nom, par prénom, par serveur d'email, par pays, etc. On peut également faire des recherches de personnes. On commence à voir se construire l'arbre des données. Le pays est stocké dans la balise adresse, qui elle même est stockée dans la balise père personne. Cette représentation est assez logique, et la localisation d'une balise (dans l'arbre XML) est une information en elle même. On pourrait trouver plusieurs balises nom dans l'arbre qui n'auront pas forcément le même sens : nom du carnet d'adresse, nom d'une personne, nom d'un groupe de personne, etc.
II.B. Représentation du carnet d'adresse
Maintenant qu'on a défini une personne, on va définir comment les personnes sont stockées dans le carnet d'adresse :
J'ai regroupé les personnes dans des groupes. Ceci rajoute une information supplémentaire sur une personne : on sait à quel groupe de personnes elle appartient. J'ai donné un nom au groupe par une balise nom, mais on peut également utilisé un attribut :
Le choix entre une balise ou un attribut est laissé au programmeur. En pratique, la technique pour accéder aux données est assez semblable. Il faut par contre savoir qu'un attribut est unique, contrairement aux balises qui peuvent être répétées. Note: On peut également limiter le nombre de balises autorisées par les DTD ou XML Schéma, mais nous ne verrons pas ça dans cet article.
III. Caractères spéciaux et CDATA
Etant donné que les balises XML sont délimités par des crochets : '<' et '>', on ne peut pas écrire ces caractères directement. Il faut les écrire, respectivement, < et >. Pour s'en rappeler, lt est l'abréviation de lower than (plus petit que), et gt l'abréviation de greater than (plus grand que).
Autre solution : on peut écrire le code d'un caractère en décimal. Exemple : & représente le caractère &, code 38. Quelques codes utiles :
Mais tout ceci est assez contraignant, plus particulièrement pour écrire du source (en langage C par exemple) qui est rempli de ces caractères. On peut alors utiliser des sections CDATA. Il suffit d'ouvrir une section par la balise <![CDATA[, et la refermer par ]]>. A l'intérieur d'une section CDATA, on peut utiliser les caractères spéciaux sans problème. Par contre on ne peut pas y écrire ]]> qu'il faut écrire ]]>. Exemple de CDATA :
IV. ConclusionIV.A. Avantages
IV.B. Désavantages
IV.C. Mon avis
Je pense que le format XML va être de plus en plus utilisé. Les disques durs et la mémoire sont de plus en plus gros, et se soucie de moins en moins de la taille des fichiers. Aujourd'hui, ce qui devient important c'est de retrouver une information dans une multitudes de documents. Le format XML est le début de la solution. D'un côté le XML est très souple, de l'autre il est très portable et se forme est définie selon des règles strictes. Il permet l'interopérabilités dans un environnement très hétérogène. Usez et abusez du XML, ce format a encore de beaux jours devant lui.
Le XML seul ne semble pas si intéressant. Il prend toute se puissant accompagné de son ami XSLT. Lisez rapidement mon article sur XSLT pour définitivement franchir le pas !
|
Copyright © 2005 Victor STINNER. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette page est déposée.
Copyright © 2000-2012 - www.developpez.com