Introduction à XML

Je vais essayer de me limiter à l'essentiel pour savoir écrire et comprendre les fichiers XML.

XML est un langage de description des données très semblable à HTML et dont ils héritent tous les deux de SGML. D'une manière simple on pourrait dire que HTML (ou XTHML) est un cas particulier de XML avec des balises précises. En effet on utilise une DTD en HTML comme on le ferait en XML.

HTML
<!DOCTYPE HTML PUBLIC 
"-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

XML
<!DOCTYPE root SYSTEM "tree.dtd">

La définition se fait en invoquant la clause DOCTYPE puis:
  • L'élément racine (en gras. Respectivement HTML et root)
  • Le type de DTD
    • PUBLIC pour une DTD standard comme en HTML
    • SYSTEM pour une DTD personnelle
  • Une chaine de caractère formatée
    • + Si compatible ISO et - dans le cas contraire
    • Nom de l'organisme gérant le format (ici W3C)
    • Nature du document (ici DTD)
    • Description du document (ici HTML 4.01)
    • Code de langue ISO 639
  • Une URI optionnelle spécifiant où trouver la DTD au cas où la chaine précédente ne saurait être interprétée
Un document XML quel qu'il soit (XML, DTD ou Schema XSD) commence par une instruction de traitement comme suit :

<?xml version="1.0" encoding="UTF-8"?>

La fonction de cette instruction n'est que de fournir au programme qui utilise le document XML les informations d'encodage des caractères.
Un document XML est constitué de balises ou d'éléments sur le même principe qu'HTML mais ce dernier voit ses balises prédéfinies. XML permet de créer son propre modèle, comme illustré plus bas, constitué d'éléments (racine, tronc, branche) et ceux-ci peuvent accueillir des attributs (feuilles).

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE racine SYSTEM "arbre.dtd">
<racine>
  <tronc branches="13">
    <branche feuilles="100" />
  </tronc>
</racine>

Pour garantir la cohérence de l'information et de sa structure, il faut pouvoir valider le fichier XML avec un descriptif qui contient les règles d'écriture de XML. Je vais en exposer les principales de manière. Je vais exposer les moyens de valider un document XML dans les prochains articles.