Présentation de XML

XML (eXtensible Markup Language: qui veut dire langage à balises étendus ou langage à balises extensibles) est en quelques sorte un langage HTML (Hyper Text Markup Language) amélioré permettant de définir de nouvelles balises.

XML est un méta-langage permettant de définir d'autres langages, c'est-à-dire définir de nouvelles balises permettant de décrire la présentation d'un texte. Les nouvelles balises seront définies dans un document indépendant appelé DTD (Document Type Definition).

Les balises XML décrivent le contenu plutôt que la présentation. Ainsi il permet de séparer le contenu de la présentation ce qui permet par exemple d'afficher un même document sur des applications ou des périphériques différents sans pour autant nécessiter de créer autant de versions du document que l'on nécessite de représentations.

Dans un premier temps, le document XML est créé par n'importe quel éditeur de texte ou par un programme générateur. Ensuite il est analysé par un Parser (un analyseur XML) qui vérifie sa conformité et le converti en une structure d'éléments arborescente. A l'étape finale, la structure arborescente produite par le Parser est transmise à un navigateur qui l'affiche.

Structure d'un document XML

Un document XML est composé de trois parties:

  1. la première partie, appelée Prologue permet d'indiquer la version du langage XML et doit se trouver obligatoirement tout en haut du document XML. Elle est utilisée également pour déclarer le jeu de caractères d'encodage. Elle permet aussi de spécifier si le document est autonome (standalone="yes") ou s'il dépend, pour son fonctionnement, d'autres fichiers ou d'autres ressources externes (standalone="no").

Les instructions XML légales sont les suivantes :

<?xml attributs ?>
<?XML ATTRIBUTS ?>

Ces instructions possèdent trois attributs

Instruction Description
version="numéro-de-version" indique la version de XML utilisée pour le traîtement du document.
encoding="type-d'encodage" indique le jeu de caractères employé dans le document.
standalone="yes|no" indique si le document est autonome ou s'il se réfère à d'autres fichiers.

Exemple1

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

L'instruction XML spécifie la version 1.0 de XML avec un encodage Unicode compressé et requiert des documents externes.

<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>

La déclaration suivante indique la version 1.0 de XML, un encodage correspondant au type Latin-1, Europe occidentale et enfin le document est autonome.

Le prologue se poursuit avec des informations facultatives sur des instructions de traitement à destination d'applications particulières. Leur syntaxe est la suivante:

<?instruction de traitement?>

  1.  la seconde partie est une déclaration de type document à l'aide d'un fichier DTD (Document Type Definition). Une déclaration de type DTD commence toujours pas <!DOCTYPE et se termine par ]>. Par convention le segment d'ouverture et le segment de fermeture sont placés sur des lignes différents.

Exemple1

<?xml version="1.0" standalone="yes"?>

<!DOCTYPE GREETING [

    <!ELEMENT GREETING (#PCDATA)>

]>

<GREETING>

Hello XML!

</GREETING>

  1. la troisième partie est l'arbre des éléments, il est constitué d'une hierarchie de balises comportant éventuellement des attributs. Une balise affectée d'un attribut aura la syntaxe suivante:

<balise cle="valeur">

Toute donnée est encadrée par une balise ouvrante <balise> et une balise fermante </balise>.

Exemple1

...........

 <SPEECH>

  <SPEAKER>JULIET</SPEAKER>
  <LINE>O Romeo, Romeo! wherefore art thou Romeo?</LINE>
  <LINE>Deny thy father and refuse thy name;</LINE>
  <LINE>Or, if thou wilt not, be but sworn my love,</LINE>
  <LINE>And I'll no longer be a Capulet.</LINE>
  </SPEECH>

...........

Règle

Il est possible d'insérer entre les balises des espaces, des tabulations et des retours chariots. Par contre, il est interdit de faire chevaucher des balises comme présenté ci dessous:

<balise1>

<balise2>

</balise1>

</balise2>

Un commentaire commence par <!- - et se termine par - ->. Voici un exemple:

<!- -Ce ci est un commentaire- ->

Le rôle d'une DTD

Un fichier DTD (Document Type Definition) est en fait une grammaire permettant de vérifier la conformité du document XML. Si un document XML comporte une DTD alors il est appelé un document valide, sinon c'est un document bien formé à condition qu'il réponde aux règles de base du XML.

Une DTD peut être définie de deux façons:

puce

sous forme interne, c'est-à-dire en incluant la grammaire au sein du documant XML;

puce

sous forme externe, c'est-à-dire par un appel du fichier contenant la grammaire à partir du document XML.

 

Mise en page avec XSL (eXtensible StyleSheet Language)

XSL est un langage représentant des données de documents XML, il possède deux composants:

puce

le langage de transformation des données XSLT (eXtensible StyleSheet Language Transformation), permettant de transformer la structure des éléments XML;

puce

le langage de formatage des données XSL/FO, c'est-à-dire un langage permettant de définir la mise en page (affichage de texte ou de graphique) de ce qui a été crée par XSLT.

 

(1) Exemples retirés de XML le guide de l'utilisateur-Elliotte Rusty Harold-Editions OEM