PRODUITS

RESSOURCES

INFO TETRAEDRE

PLATEFORME WEB DE DEMO

XML

Ce document a pour but de fournir une petite description du standard XML, de ses avantages et de ses inconvénients.

Le XML c'est quoi ?

Le XML est une manière de formater des fichiers textes. Il existe une spécification très complète de ce language mais elle est très rébarbative à lire. Mieux vaut commencer par quelques exemples concrets:

<?xml version='1.0' encoding='utf-8' ?>
<!-- Simple module configuration for tracing with uranine -->

<CONFIGURATION>
    <ACQUISITION_SEQUENCE  value="0">   <!-- ++++++ SLOW SEQUENCE +++++++++++ -->
        <PROBES_POWER state="3"/>
        <ACQ_VBAT     channel="0"      threshold="11.9" />    <!-- SMS EOL on low battery -->
        <PROBES_POWER state="0"/>
        <CONDITIONAL_SMS>
            alarme, d&eacute;passement niveau d'eau
        </CONDITIONAL_SMS>
    </ACQUISITION_SEQUENCE>
</CONFIGURATION>

Ce fichier est utilisé par le logiciel Axiome Desktop comme fichier de configuration. Avant d'entrer dans les détails de ce fichiers regardons rapidement les avantages et les inconvénients du XML:

Pourquoi utiliser le XML ?

Le XML permet de structurer l'information dans des fichiers textes. On peut l'utiliser typiquement comme fichier de configuration pour des programmes mais aussi pour enregistrer des résultats (mesures, carnet d'adresse, liste de pièces,...)

Le XML s'impose de plus en plus car il permet de structurer l'information sous une forme plus robuste que les fichiers binaires ou tabulaires. Cette forme permet à la fois de faciliter le traitement informatique (internet, intranet, tableur, base de données,...) tout en conservant un support texte lisible et éditable sans outil particulier par l'être humain.

Avantages / Inconvénients


AVANTAGES
Fichier texte C'est un fichier texte, donc il sera toujours lisible dans des décennies. On garantit ainsi une meilleure pérennité de l'information
Le XML est standard Cela signifie qu'il existe de nombreux outils informatiques qui permettent de lire ou d'écrire du XML. On trouve des librairies C, C++, java, PHP, perl, ... De plus en plus d'outils sont capables de lire des fichiers XML (Internet Explorer, Excel, Mathematica,...)
Le XML est strict On ne peut pas écrire le XML n'importe comment; Vous êtes obligés de suivre une certaine syntaxe. Ca permet de garantir que le fichier soit toujours lisible. Pour vérifier la syntaxe d'un fichier XML, vous pouvez l'ouvrir dans Internet Explorer. Si le fichier est incorrect, Internet Explorer indiquera l'endroit de l'erreur.
Le XML est stucturé et hiérarchique Le fichier contient des <BALISES> qui peuvent contenir d'autres balises et ainsi de suite (hiérarchie). L'ordre d'apparition des balises est conservé.
On peut ajouter des commentaires Les commentaires sont des éléments prévus par la spécification. On peut en rajouter dans le fichier sans casser la structure. Ceci permet de commenter des fichiers afin de garantir une meilleure pérennité de l'information
INCONVENIENTS
Le XML est verbeux C'est vrai. Les fichiers XML sont plus gros que des fichiers binaires ou tabulaires. Mais on peut facilement les compresser pour le stockage (avec des outils OpenSource par exemple). On assure ainsi aussi une pérenité de l'information à très long terme
Le tabulaire est mieux compris par Excel C'est vrai, mais les choses ne peuvent pas forcément toujours être décrites par des tableaux 2-dimensions. De plus on peut difficilement ajouter des commentaires dans les fichiers tabulaires


Structure

Un fichier XML est un fichier texte normal mais avec un certain nombre d'éléments spécifiques. Ce texte est structuré et hiérarchisé. Le fichier commence toujours par

<?xml version='1.0' encoding='utf-8' ?>

Ceci indique qu'il s'agit bien d'un fichier XML. Ensuite on trouve la balise racine (<CONFIGURATION> dans cet exemple).

<CONFIGURATION>

La fin de la balise est indiquée par une barre oblique (slash) comme ci-dessous:

</CONFIGURATION>

Si la balise ne contient pas de sous-éléments, on peut mettre directement le slash à la fin de la balise comme suit:

<PROBES_POWER state="0"/>

Entre le début et la fin de la balise, on peut ajouter:

  • du texte
  • d'autres balises
  • des commentaires

texte:

Dans l'exemple ci-dessus, la balise CONDITIONAL_SMS contient un élément texte ("alarme, d&eacute;passement niveau d'eau")

        <CONDITIONAL_SMS>
            alarme, d&eacute;passement niveau d'eau
        </CONDITIONAL_SMS>

Vous aurez noté les caractères spéciaux

d&eacute;passement

Le code &eacute; correspond à un e avec accent aigu. Le XML est basé sur le code ASCII américain. Les caractères spéciaux doivent donc utiliser un codage particulier. Voir ICI pour plus d'informations.

Autres balises:

Dans l'exemple, CONFIGURATION contient une balise ACQUISITION_SEQUENCE qui contient elle-même plusieurs balises: PROBES_POWER, ACQ_VBAT, PROBES_POWER, CONDITIONAL_SMS. Notons que la même balise peut apparaître plusieurs fois (c'est le cas de PROBES_POWER ici).

   <ACQUISITION_SEQUENCE> 
        <PROBES_POWER/>
        <ACQ_VBAT />   
        <PROBES_POWER/>
        <CONDITIONAL_SMS/>
    </ACQUISITION_SEQUENCE>

Commentaires:

<!-- SMS EOL on low battery --> 

est un commentaire


Attributs:

Une balise peut contenir des attributs. Les attributs sont des paramètres qui définissent des caractéristiques de la balise. Par exemple:

<ACQ_VBAT     channel="0"      threshold="11.9" />

channel est un attribut de ACQ_VBAT et vaut 0. Alors que threshold est un autre attribut de ACQ_VBAT et vaut 11.9. La valeur des attributs est toujours donnée entre des guillemets, sous forme de texte.

Différence attributs / balises:

Il n'y a pas de règle absolue qui spécifie s'il faut stocker l'information sous forme d'attribut ou de balise. De préférence, on utilise un attribut lorsqu'on sait qu'il n'a pas de sous-éléments. Une balise ne peut avoir qu'un attribut du même type (on peut pas avoir deux fois channel)

Il faut noter que l'ordre des attributs n'a pas d'importance alors que celui des balises est conservé (séquence).