Soyons précis, utilisons le même langage:
Je reprends mon exemple de la première partie:
<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>
</tables>
</database>
1) J'ai mis en évidence quelques zones remarquables. En bleu graissé
comme <tables>, c'est une balise d'ouverture ou un marqueur.
Chaque balise d'ouverture doit être appariée avec la balise
de fermeture : </tables>. J'entends tout de suite ceux du
premier rang me dire que ce n'est pas tout le temps vrai ! Nous y reviendrons.
2) Du '<' de la balise d'ouverture au '>' de celle de fermeture
nous avons un élément XML. Par exemple dans
<record>
<field name="ID">01</field>
<field name="NOM">Ain</field>
</record>
entre <record> et </record> est un élément.
Ce qu'il y a réellement entre les balises s'appellent un élément
élémentaire.Des balises peuvent donc en envelopper d'autres.
3) L'élément le plus enveloppant, ici database s'appelle
l'élément racine.
4) On a vu dans l'article précedent que les éléments
peuvent comme en HTML avoir des attributs il sont placés dans les
balises d'ouverture. Les attributs sont constitués d'une paire nom="valeur"
: name="infos" ; la valeur est nécessairement entre guillemets,
simples ou doubles. C'est beaucoup moins laxiste que le HTML.
5) Le contenu d'un élément sans autre balise s'appelle
tout simplement texte, exemple 01 ou Ain.
6) Les noms des balises et des attributs doivent respecter des conventions
relativement habituelles en particulier. Un identifiant peut commencer
par une lettre ou un souligné et en suite on peut mettre lettre,
chiffre souligné et tiret. XML est sensible à la casse des
caractères. On ne peut pas mettre d'espace entre '<' et le nom
de la balise d'ouverture. Il y a d'autres règles, je n'ai pas l'intention
d'être exhaustif.
6) Un élément qui n'a pas de contenu est un élément
vide, on écrit alors <maBalise/> plutôt que
<maBalise></maBalise>. Une balise vide peut avoir des attributs.
Les règles à respecter
Les documents XML doivent être corrects, on dit valides ou bien
formés. Pour cela voici ce qu'ils doivent respecter :
- Toute balise d'ouverture doit être appariée avec sa balise
de fermeture ;
- Les balises ne doivent pas se chevaucher, ceci est incorrect <records>
<record>
<field name="ID">01</field>
<field name="NOM">Ain</field>
</records>
</record>
- Le fichier XML doit avoir un élément racine et un seul.
Ce n'est pas difficile à réaliser comme condition, il suffit
d'encadrer ce dont on a besoin par un élément racine et
le tour est joué.
Pourquoi ces contraintes ?
Il y a un souci d'échanges d'informations, toute personne ou automate
recevant un fichier XML en a la description avec les balises et les attributs,
le contenu bien évidemment mais aussi la structure car les règles
sont respectés. Le document peut donc être lu, on dit parsé,
en toute quiétude.
D'ailleurs c'est le laxisme de HTML qui rend les navigateurs gourmands
en Ko voire Mo. En effet ils doivent pallier à nos manquements :
on n'a pas fermé le <p>, on a oublié les guillemets
aux valeurs d'attributs ; tout cela leur donne du travail supplémentaire.
C'est pour cela que les analyseurs de XML sont beaucoup plus légers.
Prolongements
La prochaine fois nous étudierons les moyens de respecter la
validité d'un document, de définir son modèle. A
partir de là nous étudierons les feuilles de style XSL,
puis nous verrons comment on peut par exemple transformer un document
XML en HTML.
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
|