Bases XML

Présentation

Remarque: cet article a été écrit en 2001. Depuis, les choses n'ont pas tant changées que celà, si ce n'est que "Netscape" est à remplacer par "Firefox".

XML a montré son efficacité pour décrire des objets complexes, tels que documents, fichiers de configuration, ou objets informatiques à transporter. Mais XML ne s'imposera pas comme langage directement lisible par un humain, et ne remplacera pas HTML.

Qu'est-ce que c'est ?

XML est au départ une voie moyenne entre HTML et SGML

Au bout du compte, XML est un excellent outil pour représenter des données structurées en format texte (ASCII ou Unicode), en général mais pas toujours dans un but d'affichage ou d'impression, avec une bonne ouverture vers tout type de média (dont le Wap tant qu'il existe).

XML ambitionne à juste titre la possibilité de prendre en compte tout type de publication et toutes les aptitudes à la navigation. Il ne faut dont pas s'attendre à quelque chose de simple, même si les principes de base le sont.

Dans le domaine de la publication, XML pourrait à terme devenir un concurrent sérieux de PDF, format propriétaire d'Adobe.

Est-ce que ça marche ?

Pour résumer et si on s'en tient à des besoins bien cadrés, oui. Une réponse plus détaillée requiert une connaissance minimale de la norme.
Avec un navigateur tout est lié aux normes associées En pratique:

Quelques indices significatifs

Que faire avec XML

XML est à mettre en oeuvre dans le cas d'un besoin applicatif précis. Une cible internet est peu réaliste à ce jour (fin 2000). Une utilisation technique intranet est tout à fait envisageable, et dans tous les cas il n'est pas inutile de se faire les dents sur quelques exemples car cette norme est faite pour durer et s'étendre. Elle repose sur des concepts puissants qu'il est préférable de prendre le temps d'absorber correctement avant de se lancer dans un déploiement d'envergure ou avant de confier un tel développement à un intervenant extérieur.

Une bonne compréhension de la norme est facilité par la maitrise de quelques concepts clé, et/ou permet de les aborder

Actuellement(en 2001), Netscape 6 est capable d'afficher directement un document XML disposant d'une feuille de style CSS. Internet Explorer 5 procède en deux temps, et utilise une feuille de style XSL - qui doit être rattachée au document - pour le transformer en HTML avant affichage. Le document HTML généré peut faire référence à une feuille de style CSS.

En 2006, pas de problème avec Firefox, mais certaines entités IE5 non W3C ne sont pas reconnues.

A quoi ça ressemble ?

eXtensible Markup Langage est fondé sur des bases simples. Comme HTML, c'est un langage de balises, mais les noms de balises ne sont pas prédéterminés. XML est beaucoup plus strictement normé que HTML. La norme précise que si un document n'est pas bien formulé, c'est à dire syntaxiquement correct, un navigateur doit signaler les erreurs et ne pas chercher à l'afficher. Entre autres règles Ces règles ont été édictées afin que tout document soit correctement interprétable par n'importe quel outil, exclure toute extension propriétaire incompatible avec la norme, et éviter tout un ensemble de problèmes.
Si vous tombez sur un document HTML en Allemand, Polonais ou Russe ne spécifant pas son code page, votre navigateur l'affichera avec l'alphabet latin standard et un résultat surprenant, alors même qu'il sait afficher les bons caractères. Avec XML, vous ne pourrez pas visualiser vos propres documents comportant des accents si vous n'avez pas spécifié un jeu de caractères qui les accepte (iso-8859-1 en l'occurence). Une fois cette omission réparée, tous les navigateurs l'afficheront correctement.

Voici un document XML minimaliste:

<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<docXML>
  <entete>XML</entete>
  <auteur>Patrick LARREYA</auteur>

  <normes>
    <norme nom="XML">
       Langage de balise, très structuré.
    </norme>
    <norme nom="DTD">
       Définition de Type de Document. Permet de contrôler la structure
       d'un document XML.
    </norme>
    <norme nom="CSS">
       Cascading Style Sheets. Permet la mise en forme d'un document XML.
    </norme>
    <norme nom="XSL">
       eXtended Sheet Layout.
       Mise en forme et restructuration d'un document XML.
    </norme>
  </normes>
</docXML>

A quoi ça sert ?

Si on s'en tient à un format de document, l'intérêt de XML n'est pas évident. HTML avec CSS permettra de faire à peu près tout quand CSS2 sera généralisé.

XML est un format idéal pour la représentation et le transport de données structurées. Des outils partfaitement standard et faciles à maitriser existent pour analyser le contenu d'un document XML ou pour en générer.

Quelques applications :

Si vous avez déjà utilisé des outils de ce type, l'intérêt d'un flux XML est assez évident, surtout si un mapping objet est pris en compte dès le départ.

Concepts et vocabulaire

Sémantique

Le balisage de XML doit être sémantique, c'est à dire déterminé pas des notions de sens. En HTML La distinction n'est pas seulement métaphysique, mais fait la différence entre une approche minimaliste et fonctionnelle et une approche plus construite : L'assembleur et ses Goto perd de l'influence devant des langages objets moins efficaces mais qui permettent (et imposent) de prendre de la hauteur et gagnent ainsi en maîtrise et évolutivité.

Forme et Structure

Un document XML doit être syntaxiquement correct. La terminologie officielle spécifie qu'il doit être correctement formulé ou formé.

Ceci n'implique rien en terme de contenu ou de structure. La structure du document peut (mais ne doit pas nécessairement) être contôlée pour correspondre à une structure type. Cette stucture est définie dans une DTD pour Document Type Definition, en utilisant un langage spécifique, un peu ésotérique au premier abord, mais assez simple en fin de compte.

Mise en page et transformation

La mise en page d'un document consiste à présenter son contenu sur un écran ou sur des pages dans l'ordre d'apparition du texte et en tenant compte des balises pour la présentation. En XML, aucune balise n'a de rôle prédéfini et la présentation doit être précisée dans une feuille de style. A une balise peuvent être associés des attributs de présentation

CSS (Cascading Style Sheets) permet de spécifier la mise en page.

Certaines portions du texte peuvent être masqués, mais le document suit la séquence générale.

Un document XML peut être, à la différence de HTML, composé par assemblage de plusieurs sources. Une source peut être une base de données compatible XML en réponse à une requête. Certaines sources peuvent fournir des informations dans un ordre différent de celui souhaité.

Une transformation est nécessaire pour obtenir le format désiré :

XSL (eXtended Style Sheets) permet de transformer un document pour affichage direct (aucune implémentation connue) ou conversion transparente en HTML (Internet Explorer 5)

Modèle de document

La plupart des traitements de texte et outils HTML fusionnent les notions de contenu et de présentation. XML fournit un contenu, et les normes associées CSS et XSL définissent une présentation. Ceci passe par la définition et la formalisation d'un modèle de document : dans la mesure ou une structure est spécifiée, elle peut être modifiée dynamiquement. La modification peut porter sur le contenu du document ou sa présentation. Des API ont été spécifiés en même temps que la norme pour accéder à la structure du document et éventuellement la modifier, autour d'un modèle DOM (Document Object Model).

La structure d'un document XML peut être analysée selon un modèle normalisé, fournissant une approche homogène quel que soit le langage (java, PHP ou autre).

Patrick LARREYA, Janvier 2001