Le XML (eXtensible Markup Language) est un langage de balisage générique. Les données sont encapsulées dans des balises, qui permettent de structurer de manière logique le contenu. Les balises ne véhiculent a priori pas d’information de présentation mais de sémentique.
Il est utilisé avec d’autres langages
Le XML est extensible (on dit que c’est un méta-langage). Il permet de définir différents espaces de noms (c’est à dire des environnements qui apportent leur propre structure), parmis les plus connus: XHTML, XSLT, RSS et SVG.
Format d’un document XML :
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
Un document XML commence par un prologue qui indique
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
Le prologue est éventuellement suivit d’un doctype
<!DOCTYPE carnet PUBLIC "-//xxx/Yyy/en" "http://www..." [ .... ]>
Le document peut éventuellement inclure un feuille de style CSS ou XSL.
<?xml-stylesheet type="text/xsl" href="style.xsl"?>
<?xml-stylesheet type="text/css" href="style.css"?>
Des commentaires peuvent être ajoutée entre <!--
et -->
.
Un commentaire peut s’étendre sur plusieurs lignes.
Il ne doivent pas contenir la séquence --
<!-- Commentaire -->
Un document XML est un hiérarchie d’éléments délimités par des balises ouvrantes et fermantes. Chaque élément peut contenir des éléments fils et/ou du contenu texte ou rien (vides).
<chapitre>...</chapitre>
L’imbrication et l’ordre des éléments reflètent la structure logique
<ol xml:lang="fr">
<li>Des balises décrivent la structure</li>
<li>Structure arborescente</li>
</ol>
Un élément vide peut être écrit soit avec des balises vides, soit avec une balise auto-fermante
<interligne></interligne>
<interligne/>
Les éléments peuvent avoir des attributes (zéro, un ou plusieurs), qui ajoutent des précisions à la sémantique des éléments. Exemples: language, statut, identifiant, etc.
<chapitre version="provisoire" date="16/06/03">...</chapitre>
Les balises ouvrantes portent les attributs.
Un élément ne peut pas porter plusieurs attributs de même nom.
Les attributs d’un même élément n’ont pas d’ordre.
Les noms des balises et des attributs sont sensibles à la casse.
Ils ne contiennent que des caractères alphanumériques ou .
-
_
:
et peuvent pas commencer par un nombre ou un signe de ponctuation.
Une bonne pratique est d’éviter les caractères accentués et les opérateurs, virgules, point-virgules, mais ce n’est pas obligatoire.
gras
, énorme
, _note
, :couleur
, Titre1
, m.gras-2
, большой
, きなカラ
2gras
, .chapitre
, texte gras
Tout document XML a un élément racine, c’est à dire un élément qui contient l’intégralité du document.
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
À l’intérieur des balises certains caractères peuvent être ambigus: <
>
"
'
&
.
Pour cette raison, XML 1.0 définit des entités de caractères utilisables dans le document qui ne nécessitent aucune déclaration: <
>
"
'
&
(respectivement).
On peut également utiliser des références de caractères, en utilisant le code décimal ou hexadécimal du caractère: α
α
.
Des blocs de texte entiers peuvent être échappés dans un section CDATA.
Exemple: <![CDATA[<greeting>Hello!</greeting>]]>
. <greeting>
et </greeting>
sont considérées comme du contenu, pas comme des balises.
Les intructions de traitements sont des instructions additionnelles à la structure physique du XML:
code de traitement embarqué
<?php for(i=...) { faire_traitement(); } ?>
emplacement de la sélection courante
<?FM select start ?>