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.