Retour à la page principale --> Etude préalable --> Les techniques

XML



Le XML (eXtensible Markup Langage) a été mis au point par le XML Working Group et a reçu les recommandations du W3C en 1998. XML est un sous ensemble de SGML (Standard Generalized Markup Language) qui est utilisé dans le milieu de la Gestion Electronique Documentaire (GED). Le XML reprend en grande partie les fonctionnalités du SGML mais en étant toutefois utilisable sur le Web. En effet, le XML est un langage permettant de mettre en forme un document grâce à des balises, de définir de nouvelles balises et par conséquent de définir de nouveaux langages. Grâce à cette extensibilité, il peut être utilisé pour décrire n’importe quel domaine de données.
XML est un langage décrivant le contenu et non pas la présentation d’un document. Pour vérifier la syntaxe d’un document, le XML fournit les DTD (Document Type Definition). Il s’agit d’un fichier décrivant la structure des documents y faisant référence. Ainsi, un document XML doit respecter les conventions de notation XML (document bien formé) et peut éventuellement faire référence à une DTD décrivant l’imbrication des éléments possibles (document valide).
Le XML fournit un format d’échange de documents et de ce fait, lors de la réception, ce dernier doit être analysé pour extraire le contenu.

Structure d’un document XML

Un document XML est structuré en 3 parties :
  • Prologue
  • Contient une indication de la version d’XML utilisé pour coder le document et éventuellement des informations facultatives sur des instructions de traitement à destination d’applications particulières.

  • <?xml version="1.0" encoding="ISO-8859-1"?>
< ?instruction de traitement ?>

  • Déclaration de type de document (DTD)

  • Arbre des éléments
Le contenu du document XML est constitué d’une hiérarchie de balises comportant éventuellement des attributs.

Exemple de document XML
XML permet de représenter le contenu textuel et la structure logique.
La présentation est décrite par des moyens complémentaires (CSS, XSL) et peut changer, indépendamment des contenus et de la structure.

Eléments logiques d’un document : Manuel, Titre, Auteur, Résumé, Chapitre, Section, Paragraphe, Note, Exemple…

Structure arborescente du document XML :

<?xml version="1.0" ?>
<book>
  • <title> Manuel </title>
  • <abstract>
    • <para> Ce livre... </para>
    • <para> On verra... </para>
  • </abstract>
  • <body>
    • <chapter>
      • <title> Introduction </title>
      • <section>
        • <para> Avant de... </para>
        • <para> Aussi... </para>
      • </section>
        • <section>
          • <title> Historique </title>
        • </section>
    • </chapter>
    • <chapter>
      • <title> Conclusion </title>
      • <section />
    • </chapter>
  • </body>
</book>

Exemple de document valide avec DTD

<?xml version="1.0" standalone="yes"?>
<!DOCTYPE magasin [
  • <!ELEMENT magasin (service)>
  • <!ELEMENT service (produit)>
  • <!ELEMENT produit (#PCDATA)>
]>
<magasin>
  • <service>
    • <produit>
      • Vaisselle
    • </produit>
  • </service>
</magasin>

Eléments de syntaxe

Un document XML bien formé doit obéir aux règles suivantes :

  • Le document doit commencer par une déclaration XML.
  • <?version="1.0" standalone="yes" encoding="iso-8859-1"?>
  • Le document doit utiliser une DTD (Document Type Definition).
  • <!DOCTYPE élément_racine [Définitions...]>
  • Le document doit contenir un seul et unique élément racine, déclaré dans l'instruction DOCTYPE, dont les marqueurs encadrent une ou plusieurs autres balises.
  • <!DOCTYPE élément_racine [Déclarations...]>
  • <élément_racine>
  • <balise>donnée</balise>
  • ...
  • </élément_racine>
  • Le document doit contenir un ou plusieurs éléments. Si le document contient un seul élément, alors ce document sera composé du seul élément racine.
  • Les valeurs d'attribut doivent être impérativement encadrées par des guillemets simples (') ou doubles (").
  • <balise attribut="valeur" attribut2='valeur'>
  • Une balise contenant des données doit impérativement être fermée.
  • <balise>donnée</balise>
  • Une balise vide (ne contenant pas de données à l'instar de la balise IMG dans le HTML) doit également contenir un marqueur de fermeture.
  • <balise></balise>
  • <balise/>
  • Les balises doivent être correctement imbriquées, ainsi la ou les balises fils doivent être encadrées par une balise parente de départ et une de fin.
  • <balise parent>
  • <balise fils>donnée</balise fils>
  • <balise fils/>
  • </balise parent>
  • Les noms d'éléments et d'attributs ne peuvent être composés que de lettres, y compris les lettres accentuées, de chiffres, de soulignés (_), de tirets (-), de points (.) et de deux points (:).
  • Les noms d'éléments et d'attributs doivent commencer par une lettre ou un souligné.
  • <_balise attribut9='valeur'/>
  • Les noms d'éléments dans les balises d'ouvertures ou de fermetures devront respecter une casse rigoureusement identique.
  • < BaLiSe>Donnée</ BaLiSe>
  • Les noms d'attributs doivent également conserver une casse rigoureusement identique.
  • balise  AttribuT="valeur">donnée<balise>
  • balise2  AttribuT="valeur">donnée<balise2>
  • Le caractère inférieur à (<) sert uniquement à ouvrir une balise.
  • <élément/>
  • Le caractère esperluette (&) est utilisé essentiellement pour faire appel à une référence d'entité soit prédéfinie, soit générale, déclarée au préalable dans la DTD.
  • &
  • &entité_générale;
  • Les caractères inférieur à (<), l'esperluette (&) ou la séquence]]> doivent être remplacés respectivement par les références d'entité <, & ou ]]>.
  • Les attributs des documents XML bien formés sans DTD seront considérés de type CDATA, d'ailleurs considéré comme type par défaut.


Commentaires
Le XML présente indéniablement plusieurs atouts. En effet, un document XML est lisible et ne nécessite aucune connaissance pour être compris. Il est extensible et propose une structure arborescente permettant de modéliser la majorité des problèmes informatiques. De plus, il est multi plate-forme et déployable car il peut être facilement distribué par n’importes quels protocoles à même de transporter du texte, comme http. Cette portabilité fait que le XML est particulièrement adapté à l’échange de données et de documents.
Dans le cas des métadonnées, le XML peut être utilisé pour inclure les métadonnées à l’aide de balises. Il existe plusieurs normes s’appuyant sur un langage XML pour décrire les métadonnées.