XML - Concepts de Base
XML - Concepts de Base
XML - Concepts de Base
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
b. Le HTML
Logiciels WYSIWYG -"What You See Is What You Get"- tels que Nvu,
FrontPage ou Dreamweaver ;
... 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 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.
1. Procédure
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. Généralités
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.
2. Le prologue
a. Déclaration XML
b. Instructions de traitement
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).
4. L'arbre d'éléments
a. Introduction
b. Element racine
c. Les éléments
<titre>Les Misérables</titre>
d. Les attributs
<instrument type="vent">trompette</instrument>
e. Les entités
Caractère Entité
& &
< <
> >
" "
' &aquot;
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 é. Il est néanmoins possible d'importer des entités en
provenance d'une autre DTD, notamment celle du HTML.
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.
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.
2. Netscape
3. Conclusion