Extensible Markup Language – XML documents et applications

By 19 March 2012

Extensible Markup Language ( XML) – Chapitre 1:

Le langage XML que nous utiliserons pour la suite du développement de ce mémoire, est issu des travaux du World Wide Web Consortium.
Dans ce chapitre, nous décrivons au moyen d’un exemple ce qu’est XML et quelques principes qui nous seront utiles.

1- Le World Wide Web Consortium (W3C)

Le World Wide Web Consortium a été fondé par Tim Berners-Lee (inventeur du World Wide Web) en octobre 1994 au Massachusetts Institute of Technology.
W3C est un groupe de normalisation et standardisation dédié aux technologies du Web.

Cette standardisation vise à permettre le développement du Web en rendant compatibles les technologies dédiées, et aux différentes solutions logicielles y accédant de travailler ensemble. L’interopérabilité Web étant une des missions du W3C.
Les standards de langages et protocoles Web publiés par le W3C le sont en Open source afin d’éviter la fragmentation du marché et par conséquence du Web.

Recommandation W3C: au terme d’un processus de plusieurs phases (brouillon de travail, dernier appel, candidat à la recommandation, recommandation proposée) , un document devient une Recommandation W3C.
Citons quelques recommandations:
– 1996 Portable Network Graphics (PNG) 1.0
– 1996 Separating content from structure, CSS Level 1 is published cascading styled sheets – 1998 XML 1.0
– 2001 XML Schema

Source: W3C ( www.w3.org).

2- Extensible Markup Language ( XML)

Extensible Markup Language ou XML est un langage permettant le balisage de documents.
A l’origine est le SGML (Standard Generalized Markup Language) qui a été développé par IBM dans les années 70 et est devenu un standard ISO.
Le principe de base du SGML est de dissocier la structure d’un document de sa présentation. SGML est efficace, mais complexe, son utilisation a surtout été industrielle et militaire.

Le W3C souhaitait qu’il soit possible de transmettre et traiter du SGML générique sur le Web. Cette forme simplifiée du SGML est le Extensible Markup Language, qui est devenu une recommandation du World Wide Web Consortium le 10 février 1998.
Dès le début, l’engouement était au rendez-vous, et depuis une dizaine d’années, des milliers de

Chapitre 2 : Extensible Markup Language – XML documents et applications ont été portés en XML

L’application la plus populaire de XML est le XHTML fortement utilisé sur le Web.
Le principe de XML est d’être un métalangage permettant de baliser un contenu, et donc de décrire ce contenu.
XML se veut souple d’utilisation: chacun peut créer son propre balisage relatif à des données fort différentes, des images, du texte, des bases de données, des catalogues, des formules mathématiques, des données chiffrées,..

Par contre, XML est plus rigoureux que HTML quant au respect des règles syntaxiques; un document XML doit être bien formé: il contient un ou plusieurs éléments, la balise de chaque élément est fermée correctement, les éléments sont case sensitive, les attributs ne sont pas vides et sont entre guillemets.
XML permet le découplage des données et de la présentation, XML n’enferme pas les données dans un format propriétaire qui les rend peu utilisables sous d’autres formats.

En aucun cas XML n’est à même de transformer les données qu’il contient.
XML ne propose pas de traitement, et il n’est pas possible de créer d’algorithme en XML pour produire un résultat.

3- Définir un document XML

Nous définirons un document XML comme un ensemble d’informations balisées ou « encapsulées » dans des tags décrivant leur contenu.
Ces informations peuvent être un texte, un catalogue, des images, des données comptables dans ce cas précis,…
Le terme de document XML est utilisé pour décrire une telle structure.
Un exemple pour illustrer notre propos, serait celui d’ un mémoire qui comporte des chapitres. Des balises peuvent être créées pour décrire ces différentes parties.

Nous définissons « mémoire » et « chapitre » au moyen des balises <memoire> </memoire> et <chapitre> </chapitre>
Les balises sont doubles car la première ouvre <memoire> , la seconde referme sur le contenu </memoire>: en XML, toute balise ouverte doit être refermée.

4- Structure hiérarchique: l’arbre XML

Nous voyons apparaître une structure hiérarchique.
Très logiquement, « mémoire » se trouve hiérarchiquement au-dessus de « chapitre ». Un élément « mémoire » comporte un ou plusieurs élément(s) « chapitre(s) ».

Nous obtenons une notion parent-enfant(s): un élément « chapitre » est enfant d’un élément « mémoire ».
De cette représentation hiérarchique de XML provient la notion d’arbre XML. Un document XML est un arbre XML.
Structure hiérarchique: l'arbre XML.

5- Eléments et attributs.

Pour être plus précis, nous indiquons que « ABC et XML » est le titre du mémoire, que « Explication de XML » est le titre du chapitre.
En XML, nous utiliserons la notion d’« élément » et d’« attribut ».
Les éléments sont:
<memoire> et <chapitre>.
Les attributs sont:
<titre_memoire> qui est attribut de l’élément <memoire> <titre_chapitre> qui est attribut de l’élément <chapitre>
Notre exemple peut se représenter sous cette forme dans un document XML.

<memoire>
<titre_memoire>ABC et XML</titre_mémoire> </memoire>
<chapitre> <titre_chapitre>XML</titre_chapitre>
</chapitre>

Nous devons alors intégrer la notion de hiérarchie. Pour ce, nous déplaçons la balise de fermeture </memoire> en fin de ce document XML.

<memoire>
<titre_memoire>ABC et XML</titre_memoire>
<chapitre> <titre_chapitre>XML</titre_chapitre>
</chapitre> </memoire>

La recommandation XML impose qu’un arbre XML soit « encadré » par un élément racine, parfois appelé « élément bidon » ou « root ».
L’élément racine est l’élément parent de tous les autres éléments du document XML. Il est vide, et dépourvu d’attribut.
Nous créons donc l’élément « exemple » qui remplira ce rôle.
Nous obtenons alors la représentation XML suivante.

En examinant sa structure, nous constatons que les balises <chapitre> et </chapitre> contiennent les balises <titre_mémoire/>, et sont elles même contenues au sein des balises <memoire></memoire>
C’est de cette façon que se représente la hiérarchie au sein d’un document XML: l’élément parent inclus les éléments enfants.

<exemple> <memoire> <titre_memoire>ABC et XML</titre_memoire>
<chapitre> <titre_chapitre>XML</titre_chapitre>
</chapitre> </memoire> </exemple>

Exemple

hierarchie au sein d'un document XML
L’utilité de cet élément racine est de pouvoir d’une part accéder l’arbre XML , et d’autre part de pouvoir créer d’autres éléments de même niveau hiérarchique (que « memoire » dans ce cas). Si nous n’avons que l’élément « memoire », « memoire » est la racine de l’arbre XML.

Nous avons créé la racine <exemple> souhaitant créer d’autres éléments de même niveau hiérarchique que celui de « memoire », qui sont : « these » et « etudiant ».
Nous obtenons alors l’arbre XML ci-dessous, où nous voyons que les éléments « memoire » « these » et « etudiant » sont de niveau hiérarchique équivalent.
Exemple

sont de niveau hiérarchique équivalent
Le niveau hiérarchique identique de ces trois éléments apparaît dans le document XML. </memoire, </these> et </etudiant> sont intégrés de façon identique au sein de </exemple>.

<exemple> <memoire> <titre_memoire>ABC et XML</titre_memoire>
<chapitre> <titre_chapitre>XML</titre_chapitre>
</chapitre> </memoire> <these>
<titre_these>thèse1</titre_these>
</these>
<etudiant>
<nom_etudiant> Dupondt</nom_etudiant>
</etudiant> </exemple>

6- Validation d’un document XML

Afin de déterminer le rôle de chaque composant et son niveau hiérarchique au sein d’un document XML, une validation est nécessaire.
Un document XML peut être validé par une DTD ou bien par un schéma XML.
Nous présenterons brièvement la DTD ayant choisi cette alternative pour la suite du développement de ce travail.

7- Data Type Definition

Une Data Type Definition (DTD) est un document qui peut être externe au document XML, ou bien en faire partie intégrante.
Une DTD est rédigée dans un formalisme et une syntaxe précise, définie par le W3C.
Elle défini le vocabulaire du document XML, et décrit quels en sont les éléments, quels sont les attributs de chaque élément.
La validation du document XML est assurée par un parseur ou via le site du W3C.
Durant cette opération, le document XML est comparé à sa DTD, afin de vérifier la présence et concordance des éléments et attributs.
Un document XML validé par une DTD est un document instance de la DTD.
Reprenant notre exemple, nous créons une DTD externe que nous appelons memoire.dtd . Pour cette alternative que nous utiliserons plus loin, le document XML doit explicitement faire appel à la DTD via la ligne suivante qui se trouve en entête du document XML :
<!DOCTYPE exemple SYSTEM “/home/jean/Memoireulb/XML/memoire.dtd”>

8- Définir Elément et Attributs

Elément est décrit dans une DTD par: </ELEMENT (le nom de l’élément) (contenu)>
Pour créer un élément « chapitre », donc le jeu de balise <chapitre> </chapitre>, nous rédigeons en en termes de DTD: </ELEMENT chapitre (contenu)>.

Le contenu peut être de type vide , contenir des sous-éléments ou éléments enfants (une séquence de sous-éléments), proposer un choix de sous-éléments, du texte, du contenu mixte.
Nous utiliserons par la suite les éléments vides, les éléments comportant des sous-éléments et les éléments comprenant une description.

Un élément comportant une description se défini: </ELEMENT (nom_élément) (#CDATA)> L’élément « chapitre » contenant une description de type CDATA :
</ELEMENT chapitre (#CDATA)>.
Un élément vide se défini par : </ELEMENT nom_élément ( EMPTY)>.

L’élément chapitre qui serait vide est défini par: </ELEMENT chapitre ( EMPTY)>. Un élément contenant un sous-élément se défini par :
</ELEMENT exemple (nom_élément) (enfant ou sous-élément+)>. L’élément « chapitre » qui contient un élément enfant « paragraphe »: </ELEMENT exemple (chapitre) (paragraphe+)>.
« + » signifiant que l’élément chapitre peut contenir un ou plusieurs sous-éléments « paragraphe ».
Les attributs.

Une déclaration d’attribut commence par une balise <!ATTLIST (élément) (nom(s) d’attribut(s)>. Les attributs peuvent être de différents types.
– ID, IDREF: identificateurs uniques, qui peuvent être mis en relation par référence (IDREF). – LIST (ou ENUMERATION): choix d’attributs imposé.
– ENTITY, ENTITIES: entité(s) déclarée(s) et non analysée de la DTD.
– NMTOKEN, NMTOKENS: unité(s) lexicale nominale XML.
– CDATA: une chaîne de caractères.
Sources:
W3C: Extensible Markup Language (XML) 1.0 The XML 1.1 Bible ISBN: 0-7645-4986-3

9- Activity Based Costing et Extensible Markup Language

Nous avons au fil du chapitre précédent décrit l’application de la méthode Activity Based Costing que nous souhaitons développer dans ce mémoire; dans ce chapitre, nous avons brièvement présenté XML.
Nous relierons ces deux matières au sein de ce travail, en développant notre application ABC en utilisant les technologies XML du W3C.

Ce choix est motivé par le souhait de ne pas enfermer nos données en un format propriétaire, et être ensuite tributaire des possibilités techniques offertes par ce format.
Un autre risque lié au format propriétaire et de plus pouvoir réutiliser les données dans le temps, par exemple à cause d’un changement de format lors d’une évolution logicielle.

D’autre part, le monde XML offre une palette de possibilités technologiques qui sont complémentaires .
Il doit dès lors être possible de les utiliser pour transformer des données comptables saisies en XML afin de mener une démarche analytique.
C’est ce que nous tentons au fil des chapitres suivants.

Lire le mémoire complet ==> (Application de la méthode Activity Based Costing, technologies XML)
Mémoire présenté en vue de l’obtention du grade de Licencié en Informatique et Sciences humaines
Université libre de Bruxelles, Faculté des sciences sociales politiques et économiques