Retour à la table des matières

Introduction au langage XML

ATTENTION : Tutorial en cours d'écriture ! N'hésiter pas à nous signaler toute erreur ou suggestion.

Présentation

Le but de ce cours est de vous présentez assez sérieusement le langage XML (eXtensible Markup Language). Comme nous allons le voir, XML est un langage très général qui n'a pas pour but de replacer le langage HTML, mais plutôt d'être complémentaire à ce dernier. En effet, XML n'est pas un langage de présentation de document en tant que tel.

On pourrait plutôt qualifier XML de meta-langage : en effet on peut difficilement exploiter XML tel quel : il faut en spécifier un sous-ensemble sur lequel on pourra travailler. Pour exploiter un sous ensemble de tag XML, on peut, notamment, utiliser une DTD (Document Type Definition) et des feuilles de styles. On pourrait presque dire que HTML est un sous ensemble XML (quelques règles de syntaxe, non significatives, du langage HTML sont à revoir pour être compatibles avec celles du langage XML).

Nous allons donc, dans ce cours, apprendre la syntaxe XML (cela constitue la partie la plus simple de ce cours). Ensuite, nous irons voir ce qu'est un document de validation (les DTD et les schemas). Nous parlerons aussi de feuilles de styles (Cascading Style Sheet, eXstensible Stylesheet Language). Nous verrons aussi ce qu'il est possible de faire avec les langages de programmation et XML.

Il faut aussi savoir que l'un de but recherché par XML est de pouvoir échanger, via le Web, des données stockées dans des bases de données. Nous nous attarderons donc sur ce point pour voir ce qu'il est actuellement possible de faire dans ce domaine.

Historique

Dès le débuts des années 90, le CERN (Centre Européen de Recherche Nucléaire) rend public le projet World Wide Web. Ce projet consistait à définir un langage de présentation de documents hypertextes (HTML - HyperText Markup Language), ainsi qu'un protocole de transfert pour ces documents (HTTP - HyperText Transfert Protocol). Une fois ces deux technologies définies, on put passer à la réalisation d'outils permettant réellement cet échange d'informations (un navigateur Web et un serveur HTTP). On peut aujourd'hui dire que ce projet fut un véritable succès : qu'il n'a pas encore entendu parler du Web, d'HTML, d'HTTP ou encore de navigateurs Web ?

HTTP (Hypertext Transfert Protocol) est un protocole de transfert de document hypertextes. Initialement, HTTP fut conçut pour l'échange de documents HTML. Mais comme nous allons le voir plus loin, ce protocole à encore de bonne années devant lui.

HTML (HyperText Markup Language) est un langage de description de documents hypertextes. Ce langage est basé sur une syntaxe de balisage très simple. Pour de plus amples informations sur HTML, vous pouvez consulter le tutorial sur le langage HTML. Il est clair que depuis sa première version, ce langage à bien évolué : la dernière recommandation(Une recommandation est un standard proposé par le W3C. Vous pouvez consulter le site http://www.w3.org) HTML est en version 4.01. Après, le W3C (voir section suivante) à déprécié ce langage au profit de XHTML(eXtensible Markup Language : on tire profit des avantages des technologies HTML et XML) (on utilise toujours les tags HTML, mais via la syntaxe, plus stricte, de XML). Cependant, il est clair qu'il existe de nombreux problèmes (non forcément complexes) auxquels ce langage (et y compris XHTML) ne sait pas palier. Les langages de script (Javascript ou VBScript) peuvent aider à contourner certains problèmes, mais il ne s'agit pas, en soit, d'une solution satisfaisante.

Un des nombreux problèmes rencontré par HTML, tient dans le fait que depuis sa première version, le langage ne sais pas séparer la partie structuration du document (definition des titre, des paragraphes, des listes, ...) de sa présentation (la décoration : couleurs utilisées, polices de caractères utilisées, ...). La présentation (comment doit t'on afficher les données du document) est noyée dans le document. Cela impose de grosses difficultés pour refondre un site Web constitués de nombreux documents. Pour cet aspect là, il est vrai que depuis la version 4.0 du langage HTML, de nombreuses choses ont été dépréciées au profit des feuilles de styles CSS. Cependant, d'autres problèmes (la mise en page notamment) persistent encore en HTML.

Il a donc fallut commencer à réfléchir à une solution non pas de replacement, mais complémentaire. C'est le W3C qui a cherché à proposer un standard accepté et utilisé de tous. Cette solution doit pouvoir permettre de transférer des données sur le Web, sans devoir redéfinir un protocole de communication, et sans forcément avoir de grosses modifications à apporter aux outils utilisés (comme nous le validerons ultérieurement, un serveur normal peut envoyées des données XML via HTTP).

Si vous voulez tout savoir, en vérité, HTML est un langage dérivé de SGML (Standard Generalized Markup Language), qui est un langage utilisé, par exemple, dans des sociétés d'édition. SGML est un langage basé sur la notion de marque (de tag) pour organiser les données contenu dans les document, tout comme HTML. Ce langage est bien plus puissant que ne l'est HTML, mais il est aussi, bien trop complexe pour une utilisation dans le cadre du Web. Le W3C s'est donc orienté vers une solution intermédiaire, d'où la naissance de XML.

Le World Wide Web Consortium (W3C)

Le W3C (World Wide Web Consortium) est une association à buts non lucratifs, visant à uniformiser les langages et les technologies utilisés sur le Web. Attention, le W3C n'est pas un organisme de normalisation. Il ne définit pas des normes, mais des recommandations. On peut malgré tout dire que ces recommandations sont considérées comme des standards de fait (tous le monde, et notamment les constructeurs de navigateurs s'y conforment, plus ou moins rapidement).

Le W3C propose notamment des recommandations sur HTML, CSS, le DOM (Document Object Model), ..., et bien entendu XML. Donc pour avoir plus d'informations à propos de ces différents langages, vous pouvez donc consulter les recommandations du W3C, qui sont accessible via le Web. Pour accéder au site du W3C, il vous suffit de saisir l'URL suivante dans votre navigateur préféré.

http://www.w3c.org

Plus haut, je vous parlai de sous-ensembles XML que l'on peut exploiter. Deux exemples concrets sont, entre autres, définis par le W3C. Il s'agit MathML (Mathématique Modeling Language) et de SMIL (Synchronized Multimedia Integration Language). Jettez, éventuellement, un coup d'oeil sur ces deux recommandations.

Retour à la table des matières