Créé le 28 avril 2004
Modifié le
Langages du Web > XML

XML

Notions de base sur XML

Standardisé en 1998 par le W3C, XML est un métalangage de représentations des données, destiné à remplacer d'ici quelques années HTML. Comme HTML, XML est issu de SGML et définit comment marquer les documents: c'est-à-dire qu'il précise quels éléments constituent une page, comment ils sont imbriqués sans se chevaucher (la structure) et la sémantique des données grâce à la possibilité de définir ces propres balises. Ceci se fait à l'aide balises d'ouverture, d'un contenu et de balises de fermetures.

Voici un exemple très simple:

<message>

<auteur>nom de l'auteur</auteur>

<destinataire>Etudiants d'Infodoc</destinataires>

<contenu>

<declaration>XML arrive!!!</declaration>

<constatation>Il vaut mieux se préparer à ce nouveau standard. Les nouvelles technologies se développent déjà dans ce sens</constatation>

</contenu>

</message>

Modèle de représentation et d'échange de données standard, XML permet donc d'échanger des informations intelligibles puisqu'en définissant ses propres balises, on peut ajouter des données aux données: c'est le principe des métadonnées. Dans notre exemple ci-dessus, on a défini un type "destinataire", ce qui peut permettre de coupler cette information avec des destinataires contenus dans une base de données par exemple.

Pour mieux comprendre, voyons la différence entre HTML et XML en partant d'un exemple minimaliste:

Indiquer le nom de l'auteur d'un document en HTML se fait de cette manière:

<p>Auteur: Nom de l'auteur"</p>

En XML, on peut définir un tag (balise) Auteur:

<auteur>nom de l'auteur</auteur>

La formulation HTML n'est compréhensible que par un être humain, qui sait ce qu'est un auteur: l'information prend alors sens directement en lisant les données. Mais un algorithme n'a pas la notion de ce qu'est un auteur. La formulation XML permet de spécifier que les données sont de type auteur, ce qui permet de structurer cette information. La grande différence entre HTML réside donc dans le fait que XML n'a pas de balises prédéfinies: elles sont fixées par l'application. Les balises XML permettent de composer les éléments des documents.

Autour de XML, il existe de nombreux standards compatibles avec la norme XML, tels les XSL qui sont les équivalents des feuilles de style CSS en HTML. Le métalangage dispose aussi d'outils spécifiques pour structurer les informations: parmi les principaux, il y a les DTD et les schémas.

DTD (Document Type Definition)

Le rôle d'une DTD (Document Type Definition) est de définir la structure ou grammaire d'un document XML. Une DTD est caractérisée par un ensemble de règles qui spécifient les éléments comstituant un document XML, leur imbrication et leur fréquence d'apparition.

La DTD est une caractéristique optionnelle d'un fichier XML. Si le fichier XML n'a pas de DTD, ce dernier devra alors être "bien formé" et respecter les règles imposées par XML. Si une DTD est rattachée au fichier XML, ce dernier est automatiquement considéré comme valide puisque la définition des marqueurs du document est intégrée. On parle dans ce cas de "document valide".

La DTD peut être intégrée au fichier XML, on dit alors qu'elle est interne ou externe et dissociée du fichier XML ; le nom du fichier contenant la DTD lui est alors associé. Une DTD commence toujours par <!DOCTYPE et se termine par ]>.

La DTD est donc construite à partir d'un ensemble de déclarations permettant de définir le type, la nature et les contraintes liées à chaque nouvelle balise:

  • la déclaration de types d'éléments : Ils permettent de définir le contenu du fichier XML ;
  • la déclaration de listes d'attributs : Ils permettent d'enrichir la sémantique des éléments ;
  • la déclaration d'entités ;
  • la déclaration de notations.

L'avantage à utiliser une DTD pour un document XML tient au fait qu'on peut définir la structure de documents multiples, mais similaires au niveau de la structure.
Il existe néanmoins de nombreuses limitations avec les DTD. En effet, les DTD définissent uniquement la grammaire des balises, mais ne s'occupent aucunement du schéma complet d'un document XML. De plus, les DTD ne permettent pas de définir les types de données et les règles d'intégrité associées à une balise. Les schémas XML visent à circonscrire les limitations inhérentes aux DTD, et, à terme, à les remplacer.

Les schémas XML

Une alternative aux DTD a été proposée par le W3C sous le nom de XML-Data, dont les schémas XML constituent un sous-ensemble.

De même qu'une DTD, un schéma XML est un ensemble de règles visant à définir un document XML, notamment les marqueurs autorisés, leurs attributs et les relations les uns par rapport aux autres. Mais contrairement à une DTD, un schéma permet de définir des types pour les données. De plus, un schéma XML est un document XML à part entière et peut donc être édité et manipulé à partir de n'importe quel outil d'édition ou de traitement XML. On a donc une meilleure intégration avec XML.

Par exemple, avec une DTD on pourra définir une balise <NOM>, dont le contenu pourra être n'importe quel type de données. Grace aux schémas, on a la faculté de donner un type aux balises et donc de contrôler la syntaxe du message. Par rapport à lnotre exemple, on pourra obliger un utilisateur à ne saisir que des caractères pour le marqueur <NOM>.

Les avantages des schémas sur les DTD:

  • une DTD est difficile à lire
  • une DTD est non extensible, car ce n'est pas un document XML
  • une DTD ne permet pas de typer les données
  • une DTD est concise, mais moins riche qu'un schema XML.

En résumé, l'utilisation des schémas XML accroit encore plus l'extensibilité de XML. Il devient en effet possible de faire de XML un langage pivot pour les échanges de données. Grâce aux règles d'intégrité et de contrôle des schémas, on peut facilement vérifier le contenu transféré à l'aide du typage des données. On peut comparer ces règles d'intégrité à celles des champs d'une base de données, dont le contenu doit correspondre à un certain type de données.

Feuilles de styles pour XML: les XSL

En plus du contenu balisé, un document XML nécessite une mise en pages définie. Ceci se fait à l'aide d'une feuille de style associée au document XML. Alors qu'en HTML, on utilise les feuilles de style de type CSS, un document XML est associé à une feuille de style XSL (eXtensible Stylesheet Language). Une feuille de style XSL contient donc des commandes à réaliser sur les éléments à présenter sur le document final et les instructions de mise en page.

Les fonctions principales de XSL sont :

  • de transformer un document XML en un autre document XML ;
  • de formater un document XML en un format d'affichage.

Liens utiles

http://www.w3.org/XML/

http://www.laltruiste.com/document.php?compteur=1&page=1&rep=3

http://www.commentcamarche.net/xml/xmlintro.php3

http://fr.selfhtml.org/introduction/technologies/xml.htm

http://perso.club-internet.fr/hironico/xml/xml_debutant/


Haut de page