Syntaxe
Le langage de programmation du XML est très strictes par rapport aux autres langages de programmation à balises. Dès que la syntaxe du XML n'est pas conforme, elle est automatiquement rejeté et signaler comme invalide par les logiciels et les navigateurs Web. Les deux syntaxes les plus communes sont :
<racine> <enfant> <sousenfant>...</sousenfant> </enfant> </racine> |
ou
<?xml version="1.0" encoding="monencodage"?> <racine> <enfant> <sousenfant>...</sousenfant> </enfant> </racine> |
Entête
Le XML est en format ASCII et il s'agit donc d'un format de texte lisible. Bien qu'elle ne soit pas obligatoire, la première ligne doit commencer par un type d'encodage comme ceci :
<?xml version="1.0" encoding="monencodage"?> |
Si on veut du UTF-8, on ajoutera par exemple la ligne suivante :
<?xml version="1.0" encoding="utf-8"?>Si la ligne d'entête n'est pas présente, la balises racine commence immédiatement la première ligne.
Les balises
Ensuite, une liste d'un minimum de deux balises (car ils sont toujours regroupés par 2 pour indiquer l'ouverture et la fermeture), indique un contenu d'informations. Contrairement à d'autres langages de programmation à balises, le XML n'impose pas des noms précis aux différents balises qu'il contient. Ainsi, on peut indiquer n'importe quel nom de balise, du moment qu'il respecte l'idée d'ouvrir et de fermer des balises. Dans chacun des couples de balises, on peut inclure un ou des autre(s) groupe(s) de 2 balises, et cela à l'infinie.
La nom des balises doit respecter les règles suivantes :
- Les noms de balises doivent êtres formés de lettres, des chiffres et d'autres caractères («_»).
- Les noms de balises ne doivent pas commencer par un symbole de ponctuation.
- Les noms de balises ne doivent pas contenir les caractères «-», «;», «,», «.», «>», «<» et «&».
- Les noms de balises ne peuvent pas commencer par «XML» ou «Xml».
- Les noms de balise ne doivent pas contenir des espaces.
- Il n'y a pas de limite officiel de longueur d'un nom, on recommande par souci de taille d'un fichier XML de rester en dessous des 100 caractères.
- Les caractères accentuées (é, ê, à,... ) sont autorisés mais cause souvent des problèmes de comportement anormale dans les programmes.
- Il faut respecter les majuscules et les minuscules dans vos balises. Ainsi, le caractère «J» et différent du caractère «j».
Ainsi, l'exemple suivant est aussi valide que n'importe quel autre nom que vous choisissez :
<gladir>
</gladir>
Dans chacune des balises ont peut insérer des paramètres, appelé attribut. Il doivent être indiquer dans la première balise (balise d'ouverture) et séparé d'au moins un espace du nom de la balise. La syntaxe des paramètres «value» oblige a remplacer les caractères «"» et «&» par des «"» et des «&».
L'intérieur d'une balise
Le contenu situé à l'intérieur d'une balise peut-être soit d'autres balises, du texte ou des nombres. Dans le cas d'un contexte de texte, malheureusement, les caractères accentués ou autres sont souvent mal interprété ! Pour résoudre le problème, il faut les mettre à l'intérieur d'une balise spéciale «<![CDATA[» et «]]>» afin qu'il soit compris correctement. Aussi étrange que cela puisse paraître le contenu à l'intérieur de cette balise sera hérité par la balise parente. Voici un exemple typique de son utilisation :
<?xml version="1.0" encoding="iso-8859-1" ?>
<content>
<description>>![CDATA[ Cet exemple contient des mots accentués.]]></description>
</content>
Lorsqu'une balise n'a pas de contenu, on peut indiqué seulement une seule balise plutôt que deux en indiquant une barre oblique (/) avant le caractère «>» de la balise. Voici un exemple valide équivalent d'un «<br></br>» :
<br />
Entité
Certains caractères spéciaux ne peuvent pas être écrit directement en XML, il faut donc les remplacé par des entités. Voici les 5 entités prédéfinies du XML :
Entité | Caractère | Description |
---|---|---|
< | < | Inférieur à |
> | > | Supérieur à |
& | & | Le caractère «Et» |
' | ' | L'apostrophe |
" | " | Le double guillemet |
On peut définir manuellement d'autres entités à l'aide de balises DTD (Document Type Definition), si les entités prédéfinies ne correspondent pas à vos besoins.
Remarques
- Espace : Contrairement au HTML, les espaces sont préservés dans le format XML.
- Saut de ligne: Sous Windows les sauts de ligne sont préservés avec deux caractères (CR+LF), tandis que Unix et Max OS X utilise seulement un caractère LF. Enfin, les vieux systèmes Macintosh utilise le caractère CR.
Exemple combiné
L'exemple suivant, en langage de programmation PHP, permet de remplacer les caractères spéciaux (entités) en leur encodage respectif :