Notre premier document XML
Un document XML peut débuter par une déclaration XML. Cette déclaration définit la version de XML utilisée, l'encodage et précise si le document contient des références externes.
Exemple :
<?xml version="1.0" encoding="iso-8859-1"?>
Structure du document XML
Syntaxe du prologue
<?xml attributs ?>
<?XML ATTRIBUTS ?>
Attributs XML
Instruction | Description |
version="numéro-de-version" | Version XML utilisée pour le document. Exemple : version="1.0" |
encoding="type-d'encodage" | Jeu de caractères employés. Exemple : encoding="iso-8859-1" |
standalone="yes|no" |
|
Elément racine
Il existe un seul et unique élément racine dans un document XML, par conséquent aucune partie de cet élément n'apparaît dans le contenu d'un autre élément.
Exemple :
<livre genre="BD">
<titre>Voyage en Italie</titre>
<auteur>Cosey</auteur>
</livre>
Dans cet exemple, <livre> nous signale le début de l'élément racine.
Pour des raisons de lisibilité, nous présenterons les éléments en arborescence. L'élément racine peut contenir un ou plusieurs éléments, qui peuvent eux-même contenir d'autres éléments.
Eléments XML
Comme pour les balises HTML, les éléments sont délimités de la manière suivante:
<nom>contenu</nom>
Exemple :
<titre>Voyage en Italie</titre>
Dans le cas ou un élément doit être présent (du point de vue syntaxique), mais ne possède pas de valeur, la manière suivante sera utilisée :
<nom></nom>
Attributs XML
Il est possible de déterminer un ou plusieurs attributs pour un élément. Un attribut sera signalé dans la balise ouvrante, par son nom suivi du signe égal (=), puis de sa valeur entre apostrophes.
<nomélément nomattribut="valeur de l'attribut">
Exemple :
<livre genre="BD">
Dans cet exemple, genre est un attribut.
Commentaires XML
Les commentaires se présentent de la même manière que les commentaires HTML :
<!-- Ceci est un commentaire -->
XML texte
Sous l'appellation texte, nous pouvons retrouver toute chaîne de caractères hors balisage.
Dans notre exemple, BD et Voyage en Italie sont reprises comme texte.
<livre genre="BD">
<titre>Voyage en Italie</titre>
XML CDATA
Si sous déclarons une chaîne de caractères comme étant de type CDATA, l'analyseur n'interprètera pas le contenu. Les caractères spéciaux comme <, >, [, etc. sont donc traités comme des caractères et non comme des délimiteurs.
Exemple :
<![CDATA[je peux mettre n'importe quoi ici, même des caractères comme < ou >.]]>
Remarques
- Nous ne pouvons employer des références d'entités (<, &, etc.) à l'intérieur d'une section CDATA, en raison d'une incapacité de transcription puisque seule la chaîne de caractères ]]> est reconnue comme balisage.
- Les sections CDATA ne peuvent pas s'imbriquer.
Instructions de traitement XML
Nous pouvons préciser quelle est l'application à utiliser pour traiter certaines données, ou spécifier les paramètres nécessaires au traitement de ces informations.
<?cible liste_attributs?>
- Cible : application à laquelle s'applique l'instruction.
- Liste d'attributs : données nécessaires au traitement des informations.
Remarque
Certaines informations de traitement débutent par <?xml dont l'usage est réservé (standard XML).
Exemple :
<?xml-stylesheet type="text/xsl" href="style.xsl"?>
Remarques
XML est sensible à la casse (case-sensitive) :
Nous devons impérativement prendre en compte la différence entre minuscule et majuscule.
Incorrect :
<auteur>Cosey</Auteur>
Correct :
<auteur>Cosey</auteur>
Tout élément ouvert doit être fermé :
En effet, contrairement au HTML qui est plus laxiste, en XML, tout élément ouvert doit être fermé :
Incorrect :
<livre><auteur>Cosey</auteur></livre>
Correct :
<livre><auteur>Cosey</auteur></livre>
Hiérarchie :
Le document XML doit respecter les contraintes de formes, c'est à dire la hiérarchie des éléments XML. Une balise d'un élément peut être imbriquée dans une autre, mais la balise contenante ne peut être fermée avant la balise contenue.
Incorrect :
<livre genre="Fantasy">
<titre>Le seigneur des anneaux</titre>
<auteur>Tolkien</auteur>
<livre genre="BD">
<titre>Voyage en Italie</titre>
<auteur>Cosey</auteur>
</livre>
</livre>
Correct :
<livre genre="Fantasy">
<titre>Le seigneur des anneaux</titre>
<auteur>Tolkien</auteur>
</livre>
<livre genre="BD">
<titre>Voyage en Italie</titre>
<auteur>Cosey</auteur>
</livre>
Définition du document
Voici donc un exemple de document XML :
Code XML (test1.xml) (16 lignes)
<?xml version="1.0" encoding="UTF-8"?> <!-- test1.xml //--> <livres> <livre genre="Fantasy"> <titre>Le seigneur des anneaux</titre> <auteur>Tolkien</auteur> </livre> <livre genre="BD"> <titre>Voyage en Italie</titre> <auteur>Cosey</auteur> </livre> <livre genre="Info"> <titre>Les réseaux</titre> <auteur>Pujolle</auteur> </livre> </livres>
Ce qui est affiché de cette manière par votre navigateur :
Le même document avec une DTD interne :
Code XML (test2.xml) (23 lignes)
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <!-- test2.xml //--> <!DOCTYPE livres [ <!ELEMENT livres (livre+)> <!ELEMENT livre (titre,auteur)> <!ATTLIST livre genre CDATA #REQUIRED> <!ELEMENT titre (#PCDATA)> <!ELEMENT auteur (#PCDATA)> ]> <livres> <livre genre="Fantasy"> <titre>Le seigneur des anneaux</titre> <auteur>Tolkien</auteur> </livre> <livre genre="BD"> <titre>Voyage en Italie</titre> <auteur>Cosey</auteur> </livre> <livre genre="Info"> <titre>Les réseaux</titre> <auteur>Pujolle</auteur> </livre> </livres>
Version en cache
13/11/2024 14:49:49 Cette version de la page est en cache (à la date du 13/11/2024 14:49:49) afin d'accélérer le traitement. Vous pouvez activer le mode utilisateur dans le menu en haut pour afficher la dernère version de la page.Document créé le 07/11/2003, dernière modification le 02/08/2019
Source du document imprimé : https://www.gaudry.be/xml-declaration.html
L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.