Concepts de base
-
XML peut être considéré comme une généralisation
de HTML où, au lieu d'avoir un jeu de balises prédéfinies
ayant une signification prédéfinie, l'auteur peut "inventer"
ses propres balises.
-
Le but de XML est de faciliter le traitement automatisé de documents
et de données. L'idée est de pouvoir structurer les informations
de telle manière qu'elles puissent être à la fois lues
par des personnes sur le web et traitées par des applications qui
exploiteront de manière automatisée les informations en question.
-
Exemple (1):
<?xml version="1.0" encoding="ISO-8859-1"?>
<article>
<titre>Un journaliste accuse, un policier dément</titre>
<auteur>Alain Connu</auteur>
<date>14 juin 1972</date>
<lieu>banquise</lieu>
<texte>
<grand>Un journaliste de la place accuse</grand>
les autorités ...
<image site="...">
<legende>...</legende>
</image>
...
</texte>
</article>
-
De plus, il est évident que les éléments ci-dessus ne
permettent pas, à eux seuls, d'afficher ou d'imprimer convenablement
le document. Il faudra y joindre des informations de mise en page, par le
biais d'une feuille de style. Toutefois, même sans feuille de style,
un butineur supportant XML affichera le texte contenu dans
les divers éléments du document (code
XML correspondant).
-
Autre exemple (2), à partir des mêmes informations que le premier
exemple:
<?xml version="1.0" encoding="ISO-8859-1"?>
<article titre="Un journaliste accuse, un policier dément" auteur="Alain Connu" date="14 juin 1972" lieu="banquise">
<grand>Un journaliste de la place accuse</grand>
les autorités ...
<image site="..." legende="..." />
...
</article>
-
Terminologie:
- un attribut
- est une paire Nom="Valeur" qui se trouve dans une balise (la valeur est une simple chaîne de caractères et ne pas être structurée);
- un élément
- est une séquence <baliseDOuverture suiteDAttributs>...contenu...</baliseDeFermeture> (le contenu, c-à-d. ce qui se trouve entre la balise d'ouverture et la balise de fermeture, peut être structuré, c-à-d. composé de sous-éléments).
- Un élément vide
- est un élément dont le contenu entre la balise d'ouverture et la balise de fermeture est vide (<baliseDOuverture suiteDAttributs></baliseDOuverture suiteDAttributs>); il peut être abbrégé <baliseDOuverture suiteDAttributs /> (il ne faut pas croire qu'un élément vide ne contient pas d'information; les informations qu'il contient sont dans ses attributs).
- L'élément racine
- est le premier élément déclaré dans un document XML, qui contient tous les autres éléments. Dans notre exemple, l'élément article est l'élément racine de notre document.
-
On voit que la même information peut être structurée de
différentes façons. Le choix doit se faire en fonction des
besoins. Si un élément d'information n'a pas besoin d'être
structuré, si sa position par rapport aux autres éléments
d'information n'a pas d'importance et s'il n'y a pas d'autres
éléments d'information du même type, il peut être
fourni par le biais d'un attribut. Si cet élément d'information
a besoin d'être structuré, il devra être fourni par le
biais d'un élément XML (c-à-d défini avec sa
propre balise plutôt que comme attribut d'une balise). Dans l'exemple
(2), le titre de l'article est fourni par le biais d'un attribut
titre de la balise <article ...>.
Le titre ne pourra donc être que du texte simple, alors que dans l'exemple
(1), le titre étant un élément imbriqué dans
l'élément article, il peut contenir d'autres éléments.
Exemple:
<titre>Un journaliste <souligne>accuse</souligne>, un policier <souligne>dément</souligne></titre>
On verra que le choix va aussi dépendre du type de feuille de style que l'on va utiliser pour afficher le document. D'une manière générale, pour des documents destinés à être lus, je recommenderais de mettre dans des éléments les informations qui seront visibles au lecteur et dans des attributs le reste.
-
Un certain nombre de règles de base doivent être respectées:
- toutes les balises portant sur un contenu non vide doivent être fermées. La balise de début, la balise de terminaison et le contenu entre deux sont globalement appelés élément
- les balises n'ayant pas de contenu doivent se terminer par /> (voir la balise <image .../> ci-dessus)
- les noms d'attributs sont en minuscules
- les valeurs d'attributs doivent être entre guillemets
-
la casse (majuscules/minuscules) doit être respectée pour toutes
les occurrences de noms de balises
-
Un document respectant ces critères est dit "bien formé"
("well formed")
- Il est aussi possible de définir des règles plus strictes indiquant quelles sont les séquences et imbrications de balises autorisées. Cela se fait à l'aide d'une DTD (Définition de Types de Documents). Il est alors possible d'effectuer une "validation" des documents faisant référence à une DTD pour s'assurer qu'ils respectent bien les règles qui y sont mentionnées. Un document bien formé dont la syntaxe est conforme aux règles stipulées dans une DTD est dit "valide".
Note: en l'absence de mention de feuille de style, Internet Explorer 5 affiche la syntaxe d'un document XML sous la forme d'une arborescence montrant l'imbrication des éléments (exemple - code XML correspondant). Si, par contre, une feuille de style est mentionnée, mais n'existe pas, Internet Explorer 5 affiche juste le texte contenu dans les éléments du document XML (exemple - code XML correspondant).