XML - Concepts de Base

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 14

XML - Concepts de base

I. Historique : de SGML à XML

XML dérive d'un langage développé dans les années 80, le SGML. Ce
langage était complexe à apprendre et utiliser quotidiennement. Une
version allégée, le HTML a donc été développée ; mais ce dernier, malgré
de nombreuses adaptations, ne pouvait pas être étendu à l'infini, au fur et
à mesure de l'augmentation des besoins des développeurs. C'est alors que
fut créé le XML.

1. SGML et HTML

a. Le SGML

Le SGML (Standard Generalized Markup Language, langage de balisage


standard généralisé), premier essai de normalisation concernant les
documents électroniques, a été adopté comme standard en 1986.

Le SGML est constitué de plusieurs éléments. Ceux-ci changent pour


chaque application SGML :

Définition du type de document (DTD) : cet élément sert à


préciser la structure du document ;
Instance du document : il s'agit du texte réel du document
comportant les éléments SGML qui ont été définis dans la DTD et qui
identifient les diverses parties du texte. Même si une instance de
document peut partager une DTD avec d'autres documents, elle ne
peut se conformer qu'à une seule DTD ;
Synthèse du document : cet élément sert à préciser les
principaux aspects de l'application SGML. C'est à ce niveau que sont
déterminées les options et qu'est précisé le jeu de caractères qui
sera utilisé ainsi que les autres fonctions similaires.
Ce langage servant à préciser la structure d'un document quelconque, il
est compréhensible que sa généralité le rende difficile d'apprentissage, et
complexe d'emploi. En particulier, il était inadapté à l'écriture de
documents pour Internet. Il a donc été nécessaire d'en dériver le langage
HTML.

b. Le HTML

Comme il a été dit précédemment, c'est aujourd'hui le standard du


développement web. Il est cependant amené à disparaître
progressivement, étant remplacé par le XHTML, un langage qui lui est
extrêmement similaire, mais permettant la production de documents aux
normes XML.

Ce langage est facile à apprendre et à utiliser ; il a d'ailleurs donné lieu


au développement de nombreux outils de publication sur Internet :

Logiciels WYSIWYG -"What You See Is What You Get"- tels que Nvu,
FrontPage ou Dreamweaver ;

Outils de publication de contenu comme le populaire SPIP,


eZPublish, PHPNuke...

... sans oublier qu'il est possible d'utiliser de simples éditeurs de texte
comme (X)Emacs sous Linux ou bien le Bloc-Notes sous Windows.

Le HTML étant une application SGML, il est donc lié lui aussi à une DTD. Il en
existe parfois plusieurs par version d'HTML. Celles de la version 4.01 se
trouvent référencées sur le site web du W3C : DTD HTML 4.01 Strict,
Transitional, Frameset...

Un inconvénient du HTML est son champ d'action limité : il n'est ainsi pas
possible de définir autre chose qu'une page Web. On ne peut par exemple
pas ajouter de nouveaux éléments (on pourrait imaginer insérer des
équations mathématiques, mais ce n'est pas possible).
Au bout de quelques années, la demande se faisant de plus en plus forte
pour la définition d'un nouveau format, et le langage HTML rencontrant ses
limites, le W3C a commencé à organiser des groupes de travail sur un
autre descendant du SGML, le XML.

2. XML

Le XML est un dérivé du SGML. Il tente de se servir des principes de


simplicité du HTML et de la souplesse SGML.

Simplification de SGML, puisqu'il ne reste que 35 pages de spécification


contre 155 pages en ce qui concerne le SGML, le format XML est rapidement
apparu adapté à beaucoup plus d'usages que ses concepteurs le pensaient
initialement. Il conserve certains aspects de SGML.

Le plus important point commun avec le SGML est le fait que tout
document XML peut être basé sur une DTD ou un Schéma. Cette association
n'est cependant pas obligatoire, et un fichier XML peut très bien se suffire à
lui-même.

Une autre caractéristique importante est que dans un document XML, la


mise en forme des données est totalement séparée des données elles-
mêmes. Cela permet de séparer complètement l'information (le contenu)
de son apparence (le contenant), et donc de fournir plusieurs types de
sortie pour un même fichier de données, en fonction de l'utilisateur ou de
l'application demandeuse (tableau, graphique, image, animation
multimédia, fichier HTML, fichier PDF...).

De plus, la possibilité de créer les éléments que l'on désire permet de


rendre le fichier lui-même lisible -et modifiable- par un être humain : on
peut donner aux informations contenues dans un tel fichier le nom que
l'on veut, et les ordonner selon son désir.
Un document XML peut ainsi prévoir plusieurs cibles, comme par exemple
l'écran d'un téléphone portable, celui d'un ordinateur de bureau, une base
de données, une application logicielle, etc.

Il est également possible d'effectuer des sélections par tri, des


générations automatiques de tables des matières et bien d'autres
fonctions encore, grâce au langage de feuilles de style XSL.

II. Mise en œuvre

1. Procédure

XML permet de nettement séparer forme et fond. Par exemple, cela


signifie que pour produire un document HTML à partir de données en
utilisant le format XML, il est nécessaire d'écrire au moins deux fichiers, le
premier contenant les données à mettre en forme, le second les
informations nécessaires à cette mise en forme. En pratique, et dans un
souci de normalisation et de généralisation, il peut s'avérer nécessaire
d'ajouter un troisième fichier à l'ensemble :

1. Optionnel : un fichier peut être nécessaire pour définir a priori


les balises auxquelles le document XML pourra avoir recours. Ce
fichier peut être soit une Document Type Definition , soit un Schema
XML;
2. Le document contenant les données elles-mêmes, c'est-à-dire
le document XML à proprement parler;
3. Le document contenant les informations de mise en forme,
permettant de produire un fichier dans le format de sortie voulu :
une feuille XSL (eXtensive Stylesheet Language).

Dans le cas d'un format de sortie HTML, il peut être également nécessaire
d'ajouter une feuille de style CSS.
En résumé, si l'on veut produire un fichier HTML à partir de données
mises sous format XML, il faut :

1. Créer éventuellement un fichier définissant les balises


utilisables ;
2. Créer le fichier de données XML ;
3. Créer la feuille de style XSL permettant la production du fichier
HTML ;
4. Créer éventuellement une feuille de style CSS.

2. Exemple : une bibliographie

<?xml version="1.0" encoding="ISO-8859-1"?> <!-- Prologue -->


<biblio> <!-- Élément racine -->
<!-- Premier enfant -->
<livre>
<!-- Élément enfant titre -->
<titre>Les Misérables</titre>
<auteur>Victor Hugo</auteur>
<nb_tomes>3</nb_tomes>
</livre>
<livre>
<titre>L'Assomoir</titre>
<auteur>Émile Zola</auteur>
</livre>
<livre lang="en">
<titre>David Copperfield</titre>
<auteur>Charles Dickens</auteur>
<nb_tomes>3</nb_tomes>
</livre>
</biblio>
III. Structure d'un document XML

1. Généralités

Les personnes ayant élaboré XML avaient en tête la simplicité de


déclaration, la validation de la structure. De plus, elles souhaitaient tenir
compte des expériences du passé en intégrant la grande souplesse
syntaxique du SGML et la simplicité d'écriture du HTML.

Comme cela est notable sur l'exemple précédent, un fichier XML est
composé d'un prologue, d'un élément racine et d'un arbre. Cet arbre est
constitué d'éléments imbriqués les uns dans les autres (ayant une relation
parent-enfant) et d'éléments adjacents.

Les premières lignes forment le prologue, constitué dans


l'exemple précédent de la déclaration XML, et éventuellement d'une
déclaration de type de document (une DTD) ;
L'élément biblio est notre élément racine (en anglais :
document element) ; il est constitué de trois éléments livre. Dans
chacun d'entre eux nous retrouvons la même composition, c'est-à-
dire : un élément titre, un élément auteur et éventuellement un
élément nb_tomes. L'élément livre, de plus, a un attribut lang ;

2. Le prologue

a. Déclaration XML

Cette déclaration fait partie des "instructions de traitement". Exemple de


déclaration XML :

<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>

On distingue trois informations fournies dans cette déclaration :


1. version : version du XML utilisée dans le document, 1.0 en ce
qui nous concerne (la dernière version du langage, 1.1, date de
février 2004 mais ne change rien quant à ses bases) ;
2. encoding : le jeu de codage de caractères utilisé. Le jeu de
caractère standard pour la France est le ISO-8859-1 il a tendance à
être remplacé par l'ISO-8859-15 en attendant la généralisation de
l'Unicode. Par défaut, l'attribut encoding a la valeur UTF-8. Cela
permet à l'ordinateur de "savoir" quel caractère il doit afficher en
réponse aux combinaisons de 1 et de 0 que contient le fichier sur le
disque dur ;
3. standalone : dépendance du document par rapport à une
déclaration de type de document. Si standalone a la valeur yes,
le processeur de l'application n'attend aucune déclaration de type de
document extérieure au document. Sinon, le processeur attend une
référence de déclaration de type de document. La valeur par défaut
est no.

Cette déclaration est facultative, mais il est préférable de l'utiliser,


auquel cas les attributs version, encoding et standalone doivent être
placés dans cet ordre. Si elle est utilisée, elle doit être placée en toute
première ligne du document XML.

b. Instructions de traitement

Une instruction de traitement est une instruction interprétée par


l'application servant à traiter le document XML. Elle ne fait pas totalement
partie du document. Les instructions de traitement qui servent le plus
souvent sont la déclaration XML ainsi que la déclaration de feuille de style.
Exemple d'instruction de traitement :

<?xml-stylesheet type="text/xsl" href="biblio.xsl"?>


Dans cet exemple, l'application est xml-stylesheet, le processeur de
feuille de style du XML. Deux feuilles de style différentes peuvent être
utilisées, les XSL (propres au XML) ainsi que les CSS (feuilles de style
apparues avec le HTML). L'attribut type indique de quel type de fichier il
s'agit (text/css pour les feuilles de style CSS, par exemple) et l'attribut
href indique l'URL du fichier. Cette instruction de traitement est
notamment utilisée par les navigateurs Internet pour la mise en forme du
document.

c. Déclaration de type de document (DTD)

Cette déclaration, lorsqu'elle est présente, permet de définir la structure


du document. Elle peut être de deux types, externe ou interne. Exemple
de déclaration de type de document :

<!DOCTYPE biblio SYSTEM "biblio.dtd">

Ce type de déclaration est celui d'une déclaration de type de document


externe. Elle définit l'ensemble des éléments utilisables dans le document,
y compris l'élément-racine (ici biblio) ainsi que le nom de fichier
biblio.dtd dans lequel se trouve définie la structure du document.

Bien que facultative, il est souvent très intéressant de posséder une DTD,
en particulier externe, simplement pour vérifier la validité du document
XML. Il est recommandé d'en utiliser une dans le cas, par exemple, du
développement parallèle de plusieurs fichiers XML destinés à subir un
traitement particulier (développement par plusieurs personnes par
exemple).

L'autre type de document permettant de définir la structure d'un fichier,


le schéma XML, s'utilise autrement.
3. Les commentaires

En XML, les commentaires se déclarent de la même façon qu'en HTML. Ils


commencent donc par <!-- et se terminent par -->. Ils peuvent être
placés à n'importe quel endroit tant qu'ils se trouvent à l'extérieur d'une
autre balise.

Exemples de commentaires valides :

<!-- ceci est correct -->


<elt> <!-- ceci est correct aussi -->
Un peu de texte </elt>

Remarque : En raison de la compatibilité XML/SGML, la chaîne de


caractères -- est interdite dans un commentaire.

4. L'arbre d'éléments

a. Introduction

Un document XML peut se représenter sous la forme d'une arborescence


d'éléments. Cette arborescence comporte une racine (unique), des
branches et des feuilles.

<?xml version="1.0" encoding="ISO-8859-1"?>


<biblio>
<livre>
<!-- Élément enfant titre -->
<titre>Les Misérables</titre>
<auteur>Victor Hugo</auteur>
<nb_tomes>3</nb_tomes>
</livre>
<livre>
<titre>L'Assomoir</titre>
<auteur>Émile Zola</auteur>
</livre>
<livre lang="en">
<titre>David Copperfield</titre>
<auteur>Charles Dickens</auteur>
<nb_tomes>3</nb_tomes>
</livre>
</biblio>

b. Element racine

L'élément-racine (en anglais : document element) est, comme son nom


l'indique, la base du document XML. Il est unique et englobe tous les autres
éléments. Il s'ouvre juste après le prologue, et se ferme à la toute fin du
document. Dans l'exemple ci-dessus, l'élément racine est biblio.

c. Les éléments

Les éléments forment la structure même du document : ce sont les


branches et les feuilles de l'arborescence. Ils peuvent contenir du texte,
ou bien d'autres éléments, qui sont alors appelés "éléments enfants",
l'élément contenant étant quant à lui appelé logiquement "élément
parent".

Exemple d'élément contenant du texte :

<titre>Les Misérables</titre>

Exemple d'élément contenant d'autres éléments :


<livre>
<titre>L'Assomoir</titre>
<auteur>Émile Zola</auteur>
</livre>

d. Les attributs

Tous les éléments peuvent contenir un ou plusieurs attributs. Chaque


élément ne peut contenir qu'une fois le même attribut. Un attribut est
composé d'un nom et d'une valeur. Il ne peut être présent que dans la
balise ouvrante de l'élément (par exemple, on n'a pas le droit d'écrire
</livre lang="en">).

Exemple d'utilisation d'un élément avec attribut :

<instrument type="vent">trompette</instrument>

Exemple d'utilisation d'un élément vide avec attributs :

<img src="ours.gif" alt="Gros ours" width="56" height="100" />

e. Les entités

Il existe deux sortes d'entités, définissables et définies. Elles peuvent


être analysables ou non, internes ou externes. La déclaration des entités
s'effectue au sein de la DTD. Elles peuvent être utilisées aussi bien dans la
DTD que dans le document XML. Nous reviendrons plus en détails sur les
entités et leur utilisation ultérieurement.

Certains caractères ayant un sens précis en XML, il est nécessaire de leur


trouver un remplaçant lorsque l'on a besoin de les insérer dans un
document. On a recours dans ce cas à des entités prédéfinies. Ces entités
sont :

Caractère Entité

& &amp;

< &lt;

> &gt;

" &quot;

' &aquot;

Table 1. Liste des entités prédéfinies

Il n'existe pas d'entité prédéfinie pour les lettres accentuées ou pour les
alphabets latins. Il faut utiliser à la place les entités numériques du type
&#n; (où n est une valeur décimale). La valeur numérique correspond au
code ISO 10646 ; par exemple le caractère é est codé par l'entité
numérique &#233;. Il est néanmoins possible d'importer des entités en
provenance d'une autre DTD, notamment celle du HTML.

f. Les sections CDATA

Une section CDATA est une section pouvant contenir toute sorte de
chaîne de caractères. Une section CDATA permet de définir un bloc de
caractères ne devant pas être analysés par le processeur XML. Ceci permet
entre autres de garder dans un bloc de texte un exemple de code à
afficher tel quel.

Exemple d'utilisation de CDATA :

<![CDATA[Une balise commence par un < et se termine par un


>.]]>
5. Règles de composition

Un certain nombre de règles de base doivent être respectées :

1. Un nom d'élément ne peut commencer par un chiffre. Si le


nom n'est composé que d'un seul caractère, ce doit être une lettre
comprise entre "a" et "z" pour les minuscules, "A" et "Z" pour les
majuscules. S'il est composé d'au moins deux caractères, le premier
peut être "_" ou ":". Le nom peut ensuite être composé de lettres,
chiffres, tirets, tirets bas et deux points. La syntaxe XML est sensible
à la casse (le format distingue majuscules et minuscules).
2. Toutes les balises portant un contenu non vide doivent être
fermées. La balise de début, la balise de terminaison et le contenu
entre deux sont globalement appelés élément ;
3. Les balises n'ayant pas de contenu doivent se terminer par />
(voir la balise <img .../> ci-dessus) ;
4. Les noms d'attributs sont en minuscules ;
5. Les valeurs d'attributs doivent être entre guillemets ;

Un document respectant ces critères est dit bien formé (well formed).

Il est aussi possible de définir des règles plus strictes indiquant quelles
sont les séquences et imbrications de balises autorisées. Cela se fait à
l'aide d'une DTD ou d'un Schéma. Il est alors possible d'effectuer une
"validation" des documents faisant référence à une DTD pour s'assurer
qu'ils respectent bien les règles qui y sont mentionnées. Un document
bien formé dont la syntaxe est conforme aux règles stipulées dans une DTD
ou un Schema XML est dit valide.

IV. Support par les navigateurs

1. Famille Mozilla et Internet Explorer


Ces navigateurs (à partir de la version 5 pour Internet Explorer)
permettent l'affichage des documents XML sous la forme d'une
arborescence dans le cas général ; si une feuille de style est spécifiée, le
navigateur l'interprète (à partir de la version 6 pour Internet Explorer).

2. Netscape

Le tour de la question est vite fait en ce qui concerne les navigateurs de


la famille Netscape, puisque seules les versions égales ou supérieures à 6
affichent les fichiers XML à condition toutefois qu'une feuille de style XSL
soit déclarée dans le prologue. Néanmoins son implémentation est encore
partielle.

3. Conclusion

En définitive, deux solutions se présentent :

1. Soit on veut visualiser le source XML. Dans ce cas, mieux vaut


ne pas fournir de feuille de style dans le prologue et utiliser Internet
Explorer ou un navigateur de la famille Mozilla ;
2. Soit on veut tester la feuille de style. Dans ce cas, on peut
ajouter l'appel à la feuille de style dans le fichier XML, et constater le
résultat sous n'importe quel navigateur récent.

Vous aimerez peut-être aussi

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy