n parle de plus en plus par sigles et acronymes, certains
se retiennent mieux que d'autres, est-ce parce qu'ils sont plus
faciles à prononcer ou parce que l'on sent qu'ils sont
réellement porteurs d'avenir ? C'est les cas de XML, acronyme
de «eXtensible Markup Language» qui lui réunit
les deux. La similitude de cette expression avec HTML aussi le
rend bougrement apétissant. Je vais prendre la présentation
de XML à rebrousse-poil en partant d'un exemple concret.
Voilà
un exemple de fichier XML :
<?xml
version="1.0" encoding="ISO-8859-1"?>
<database name="infos">
<table name="codeDepartement">
<record>
<field
name="ID" type="string">01</field>
<field
name="NOM" type="string">Ain</field>
</record>
<record>
<field
name="ID" type="string">02</field>
<field
name="NOM" type="string">Aisne</field>
</record>
<record>
<field
name="ID" type="string">03</field>
<field
name="NOM" type="string">Allier</field>
</record>
</table>
</database>
Vous
avez sûrement reconnu l'exemple que j'aime bien, celui de
la liste des départements, tronqués ne m'en voulez
pas. C'est la description de la base de données infos.
elle n'a qu'une table codeDepartement, et nous avons ici
3 lignes de cette table. Ces exemples sont issus des fichiers
que je me fabrique pour importer/exporter des données de
bases en bases.
Les
trois lignes sont parfaitement décrites. Elles contiennent
chacune deux champs, l'un ID de type string/chaîne
et le second NOM aussi de type chaîne. Les
valeurs de ces champs sont sans problème 01, Ain
puis 02, Allier etc..
On
voit donc que XML permet une description textuelle d'informations
structurées. Il faut aussi apercevoir la structure arborescente
d'un fichier XML ; dans l'exemple précédent le noeud
"table" à trois fils "record". C'est
le vocabulaire de XML «root», «node»,
«child», «parent»..
Comme
HTML, XML est un langage de balises, mais les balises ne sont
pas imposées : <record>...</record>
Comme
dans HTML, les balises peuvent avoir des attributs. Par exemple
<field name="ID" type="string">,
ici deux attributs name et type dont les valeurs
sont respectivement ID et string, la colonne/champ
ID est de type string.
Et
du contenu : <field name="NOM" type="string">Allier</field>
Mais
XML est exigeant, il ne fermera pas une balise que vous aurez
oublié de fermer ;-(((
Pour
aller plus (un tout petit peu plus) loin
Voici
un exemple plus complet :
<?xml
version="1.0" encoding="ISO-8859-1"?>
<database name="infos">
<tables>
<table name="codeDepartement">
<descRecord>
<field
name="ID" type="string"/>
<field
name="NOM" type="string"/>
</descRecord>
<records>
<record>
<field
name="ID">01</field>
<field
name="NOM">Ain</field>
</record>
</records>
</table>
<table name="codeRegion">
<descRecord>
<field
name="ID" type="int"/>
<field
name="nom" type="string"/>
</descRecord>
<records>
<record>
<field
name="ID">1</field>
<field
name="nom">Alsace</field>
</record>
</records>
</table>
</tables>
</database>
Vous
lirez facilement ce fichier, on décrit deux tables. l'une
codeDepartement et l'autre codeRegion. La différence
avec le fichier XML précédent est la descriptio
formelle des tables est faite dans la balise <descRecord>.
Chaque champ pourrait être complètement décrit,
ici nous n'avons mis que nom et type, on pourrait mettre aussi
longueur, clé primaire etc..
A
noter que la balise <field> n'ayant pas de
contenu est fermée directement : <field name="ID"
type="int"/>
Nous
avons donc introduit la balise <records> qui encadre
tous les <record>, pour lesquels nous ne donnons
plus qu'un seul attribut le nom.
Qu'est-ce
qui fait courir le web vers XML
Il
n'y a pas que le web qui est intéressé par XML !
En effet, XML plus d'autres outils en cours de standardisation
XSL, XPATH etc.. permettent de séparer les informations
de leur présentation, ce qui est le grand défaut
de HTML. Cette représentation textuelle de l'information
et les outils qui accompagnent XML, permettent tout traitement
de mise en forme : XSL, de manipulations, d'extraction
de repérage dans l'arborescene : XPATH etc..
Tous
les environnements de développements ont des API avec XML,
voir IE ci-dessous. Pour ne citer que les deux langages qui reviennent
souvent dans nos articles : Microsoft a les siennes : XML-DOM
que ce soit pour Vb ou C/C++, PHP a sa librairie de fonctions
et il existe des classes PHP de manipulation de fichiers XML.
Nous
poursuivrons l'étude de ce phénomène dans
le prochain article. Nous verrons ce qu'est un document XML bien
formé et nous étudierons ce qu'est une DTD.
Compléments
Internet
Explorer permet de visualiser les fichiers XML, voici le fichier
complet de l'exemple ci-dessus dep_reg.xml.Les
signes '-' sont cliquables. Malheureusement ceci n'est pas valable
pour Netscape.
Un
soft bien pratique pour appréhender un peu XML : XML-Notepad
de Microsoft, simple et gratuit à télécharger
sur http://msdn.microsoft.com/xml/NOTEPAD/download.asp
Bonne
lecture, et à bientôt sur le forum ou par messagerie.
Daniel Lucazeau
ajornet.com
Chef de projet Internet
Tous
droits réservés - Reproduction même partielle interdite sans
autorisation préalable
|