XML

XML, historique du langage, 3/3 : Les langages XML et XHTML

(article paru en 2000, http://xmlfr.org/documentations/articles/000321-0001, mise à jour en 2006)

Ce chapitre n’est pas une présentation de XML. Il évoque ce langage en tant qu’aboutissement du lent processus de maturation conceptuel qui nous aura conduit du document indissociable de la page sur laquelle il est imprimé au document intelligent (enfin presque) où contenu et présentation sont dissociés, manipulables et extensibles.

xml2.gif

1 – Les dates clef

1996 – Jon Bosac de Sun Microsystems recrute une équipe (lire The birth of XML
, un article de Jon Bosac)
1996 juillet – Les travaux du groupe débutent
1996 août – Les principes sont rédigés
1996 novembre – Un draft de 22 pages est publié, c’est la première version de XML
1997 décembre – La proposition de recommandation est disponible
1998 février – La recommandation XML v1.0 voit le jour !

2 – Les avantages de XML

XML bénéficie de la base installée de HTML, de HTTP et des navigateurs Internet
XML est simple et portable
XML peut décrire des documents de toute complexité
XML est plus qu’un simple langage de balise, c’est une vaste famille ! ( »XML family »)
XML est international

3 – Des champs d’application

A titre d’exemples, nous pouvons citer :Messagerie : XML en tant que format standard pour l’échange de données (par exemple : XML/EDI)
Traitement : déplacement du serveur vers le client (par exemple : Electronic Banking, Electronic Commerce)
Documentaire : XML permet d’exprimer toute l’intelligence du document dans le document, les applications documentaires peuvent se développer sans contrainte (par exemple : le format EIDE pour la GED)
Collaboratif : les Intranets bénéficieront largement des documents XML. Avec HTML, la même information était préparée pour tout le monde, maintenant le choix de la restitution peut revenir au client. L’auteur décide du contenu, le lecteur de la présentation.
Publication : présentation variable de l’information ; publication dans différents formats avec XSL ; publication automatisée (par exemple à partir des bases de données)
Recherche : Recherche intelligente d’information
Intégration de système : Echanges automatisés, EAI, etc.

4 – Convergence HTML et XML : XHTML

4.1 – XHTML = HTML + XML

Les deux avatars de SGML qui semblaient être voués à vivre des destinées séparées ont convergé pour former XHTML. Pourtant, rien ne semblait fait pour rapprocher ces deux langages.

xml1.gif

La solution de cette dissonance annoncée s’appelle XHTML (eXtensible HyperText Markup Language). Tout en restant très voisin de HTML, XHTML respecte les règles XML. Il peut être utilisé par les outils XML et reste visualisable par les versions récentes des navigateurs. Il est également plus extensible que HTML ; il est en effet possible de définir la structure et le contenu des documents.

4.2 – XHTML 1.0

Avec le nouveau millénaire, toute évolution HTML est déinitivement exclue. Le nouveau langage s’appelle désormais XHTML. La première spécification de XHTML porte le numéro de version 1.0. Elle est publiée le 26 janvier 2000. Il s’agit avant-tout d’une reformulation de HTML 4.01 basée sur XML au lieu de SGML.

La première version de XHTML est une simple reformulation de HTML 4.01 en XML 1.0. Fonctionnalité, il n’y a aucun changement. La nouveauté ne tient qu’au changement de syntaxe. Il s’agit de « muscler » syntaxiquement le vieil HTML que d’aucun juge trop laxiste. Tout l’intérêt de cette version inaugurale réside dans la conformité. La conversion d’un document en HTML 4.01 conforme en XHTML 1.0 peut être obtenue automatiquement, sans perte d’information. Par exemple, l’outil tidy réalise cette traduction.

L’apparition de XHTML a permis la production de pages correctes plus facile à intégrer avec les applications utilisant XML. Il a aussi été plus aisé de prendre en compte les nouveaux navigateurs … en fait, ce sont les nouveaux navigateurs qui se sont surtout conformés aux spécifications du W3C ! Les coûts de production des sites devrait avoir diminués.

4.3 – XHTML 1.1

Le W3C publie le 31 mai 2001 deux recommandations : XHTML 1.1 et l’annotation Ruby. La première spécifie un nouveau type de document s’appuyant sur les modules définis dans la recommandation de modularisation de XHTML. L’annotation Ruby apporte une dimension internationale en proposant un module XHTML pour la représentation de textes courts situés à côté ou au dessus des idéogrammes asiatiques (à la façon des info-bulles) pour indiquer la prononciation correspondante ou une simple annotation.

4.4 – XHTML 2.0, on attend toujours !

Huit versions draft se sont déjà succédées (5 août 2002 – 11 décembre 2002 – 18 décembre 2002 – 31 janvier 2003 – 6 mai 2003 – 22 juillet 2004 – 25 mai 2005 – 26 juillet 2006) … mais on attend toujours la version stabilisée.

Ce retard n’est pas sans rappeler celui de la version HTML 2.0 sortie 5 ans après HTML 1.0. L’histoire se répète t-elle ? Le propos de XHTML 2.0 serait-il trop ambitieux ? Pour connaître le détail de la roadmap, il faut consulter cette page : http://www.w3.org/MarkUp/xhtml-roadmap/.

Dans la version 2.0, on s’attend à ce que les fonctionnalités demeurent inchangées par rapport à la version XHTML 1.1 (ou bien à ce qu’un sur-ensemble soit définit). Cependant, le langage peut être modifié sémantiquement et syntaxiquement pour répondre aux exigences des normes relatives à XML (telles que XML base et XML schema). En effet, l’objectif de ces dernières modifications est de s’assurer que XHTML 2.0 pourra être aisément supporté par les navigateurs XML sans qu’ils aient besoin de connaissance préalable de la sémantique de XHTML telles que les liens (linking – HLinks), les hyperimages (image maps), les formes (forms – XForms), les frames (XFrames), les formulaires (XForms), les événements (XML Events), etc.

Le développement de XHTML 2.0 demandera probablement le développement de nouveaux modules ou des révisions des modules existants.

5 – En guise de conclusion

Lors de la parution de la première version de cet article en 2000, ce tableau résumait le paysage de l’époque.

xml4.gif


XML, historique du langage, 2/3 : Les langages de présentation

1 – SGML, l’ancêtre

1.1 – Introduction

Les langages de présentation de l’information sur Internet ont tous SGML pour ancêtre. Apparu en 1969 chez IBM, le Standard Generalized Markup Language est une norme pour la création de langages de balisage et la création de documents échangeables et révisables. Ce métalangage a été conçu pour permettre la création de langages que l’on dit descriptifs par opposition aux langages procéduraux.

Historiquement, les manuscrits électroniques contenaient des codes ou des macro-commandes permettant au document d’être composé d’une manière particulière appelée ’specific coding’. Puis le codage générique est apparu vers la fin des années 60. Il emploie des « tag » que l’on traduit par « balise ». Ce sont des étiquettes descriptives comme par exemple ‘titre’ plutôt que des codes comme ‘format-X6′.

Les principaux langages descriptifs nés de SGML sont HTML, DHTML et XML.

1.2 – Historique de la standardisation

Le besoin de donner de la longévité aux documents stockés électroniquement a mené au développement d’un langage spécialisé. Voici les principaux événements qui ont conduit à SGML (Standard Generalized Markup Language).

1967 – Lors d’une réunion à l’imprimerie du gouvernement canadien, William Tunnicliffe parle de la séparation du contenu de l’information des documents de leur format.

1969 – Stanley Rice, un éditeur de New York, propose un ensemble « de structures éditoriales » paramétrables. L’association GCA (Graphic Communications Association) sponsorise des ateliers, des séminaires et des comités pour développer le concept. De ces efforts naquit le comité original GCA GenCode. GenCode a défini un système de balises généralisées basée sur la hiérarchie d’un document. Cette approche fut intégrée à un codage générique qui soulignait le caractère descriptif plutôt que procédural du codage.

1969 – Charles Goldfarb, Edward Mosher, et Raymond Lorie inventèrent le langage GML (Generalized Markup Language) pour IBM. GML était basé sur les idées de codage générique de Rice et Tunnicliffe.

1970 – Goldfarb proposa un langage de balises généralisées basée sur les 2 principes forts. En premier lieu, les balises doivent décrire la structure plutôt que les caractéristiques physiques d’un document. En second lieu, elles doivent être rigoureuses de sorte qu’elle puisse être clairement comprise par un programme ou un interprète humain.

1978 – Un groupe de travail de norme ANSI a été constitué et soutenu par GenCode et par la suite mené par Goldfarb afin de fournir un format pour l’échange des textes qui soit non ambigu et suffisamment riche pour permettre des évolutions futures. Leur travail fut basé sur GML.

1986 – SGML est enfin normalisé par l’ISO. Le langage est complexe. Les outils qui lui sont destinés sont chers. SGML ne sortira pas de sa « niche ».

2 – HTML, une base solide

Ce langage connaît un véritable engouement depuis sa création. Plusieurs versions se sont succédés. Il est important de connaître les dernières versions et leurs caractéristiques car les différents navigateurs ne les supportent pas toutes.

2.1 – HTML 1.0, obsolète

Le World Wide Web Consortium (W3C) est l’instigateur de la norme HTML. Apparu en 1991 au CERN à Genève, la première version de HTML est un langage hypertextuel très simple et indépendant qui permet de décrire du texte avec des graphiques.

Il s’exécute sur toute sorte de plate-forme. Il comprend déjà la définition d’éléments de structuration comme les titres, les listes et les chapitres, mais la présentation finale est laissée au logiciel de navigation.

Cette version n’est plus du tout utilisée.

2.2 – HTML 2.0, obsolète

Le succès du navigateur Mosaic (premier à offrir une interface utilisateur graphique) impose HTML. Au passage, le langage y gagne quelques particularités du browser Mosaic. Par rapport à la version 1.0, les nouveautés ont été bon nombre de possibilités de mise en page (éléments de structure externe au document comme les en-têtes, les lignes de titre, les différents niveaux de titres) mais aussi les liens hypertextes, les mises en relief, les insertions flexibles de graphiques, de tableaux, de listes et de formulaires.

Le standard HTML 2.0 a cependant attendu septembre 1995 pour être adopté définitivement. C’est à cause de cette attente que sont nés les dialectes qui ont nui à l’harmonisation des navigateurs.

xml3.jpg

Il est devenu très rare de rencontrer cette version.

2.3 – HTML 3.X, obsolète

Il y a eu plusieurs versions 3. La plus célèbre est la version 3.2 connue sous son nom de code  » Wilbur « . Elle est devenue un standard en mai 1996 à Paris, ce fait mérite d’être noté ! Les nouveautés ont été la présentation structurée d’éléments de tableau, les tailles et couleurs de polices de caractères, l’agencement du texte autour de l’image, les images cliquables sans communication avec le serveur et (le plus important pour l’avenir) l’insertion des applets Java et JavaScript.

On rencontre encore quelques fois aujourd’hui des pages exprimées en HTML 3.2.

2.4 – HTML 4.0, le vieux standard

Dès juillet 1997, sous le nom de code « Cougar », une nouvelle proposition de standard est faite. C’est l’époque de la grande rivalité entre Netscape et Microsoft. Les définitions sont faites avec rapidité et en octobre 1997 la norme se fige. Les nouveautés sont nombreuses. Le HTML ne se limite plus aux seuls navigateurs et vise maintenant à s’intégrer aux différents matériels de sortie de l’utilisateur. L’internationalisation est effective, par exemple les accents du français sont pris en compte. La définition des tableaux s’améliore. Les formulaires s’enrichissent de fonctionnalités. Le tag OBJECT permet d’insérer tout type d’objet et non plus seulement des contrôles ActiveX. Les feuilles de style sont adoptées. L’impression se fait intelligente (par exemple la possibilité de commander le saut de page). Des événements qui appartenaient aux scripts (par exemple : onmouseover, onload) sont maintenant reconnus. Les frames sont officialisés. Les affichages impossibles ont la possibilité d’une alternative. C’est le 18 décembre 1997 que le W3C adopte la version 4.0 de la spécification HTML.

L’utilisation de la version 4.0 a progressé très vite et a supplanté la 3.2 pendant l’année 1999.

2.5 – HTML 4.01, le dernier standard

Le 24 décembre 1999, le W3C labélise la spécification HTML 4.01 ; elle vient apporter quelques corrections que l’on peut qualifier de mineures (par exemple sur les DTD). Il s’agit de la dernière version … il n’y en aura plus d’autres. La descendance de HTML s’écrira avec le préfixe X pour signifier une prise en compte de XML.

On observera qu’il s’est passé plus de temps entre les versions 1.0 et 2.0 qu’entre les versions 2.0 et 4.01.

2.6 – Evolutions

Jusqu’en 1999, HTML a été considéré comme la lingua-franca de la publication sur Internet. Après être passé par plusieurs évolution, HTML possède désormais un éventail de dispositifs reflétant les besoins d’une communauté internationale très diverse. HTML 4.01, créé par W3C, est devenu la recommandation de référence. Plus de 6 ans se sont écoulés, HTML demeure !

Au cours de l’atelier du W3C sur le « futur de HTML » organisé à San Jose, Californie, en mai 1998, les discussions ont porté sur la possibilité d’une prochaine génération de HTML. A la fin de l’atelier, on a convenu que la seule façon de progresser était de s’appuyer sur une nouvelle génération de HTML.

XML n’était plus très loin.

3 – DHTML

3.1 – Introduction

DHTML est une extension certes majeure du langage HTML qui renonce à son caractère statique pour devenir dynamique mais qui reste propriétaire Microsoft. L’éditeur propose une solution pour obtenir l’interaction, l’animation et, surtout, la mise à jour « à la demande », sans qu’il soit nécessaire de se servir de plug-in ou autres applications complémentaires. Netscape n’a pas suivi.

En raison des limites du langage HTML, les pages Web étaient statiques : une fois affichées, elles ne pouvaient plus changer. Il fallait, pour les animer, recourir à des outils externes comme des applets Java ou des extensions (plug-in), parfois difficiles à mettre en oeuvre et, surtout, pas forcément présents sur la machine de l’utilisateur.

3.2 – Pages dynamiques

Dynamic HTML, ou DHTML, est une évolution du langage HTML qui, en plus de la définition des différents éléments de la page, permet de préciser les comportements et les interactions entre lesdits éléments. Concrètement, cela signifie qu’une page HTML est aujourd’hui capable, en fonction des actions de l’internaute ou de tout autre événement, de faire évoluer elle-même sa forme et son contenu.

Le principe de base est très proche du développement classique d’applications. On construit une interface à l’aide de divers éléments ou objets (des textes, des titres, des images, des boutons, etc.) auxquels on associe des propriétés (contenu, police de caractères, couleur, etc.) et un comportement face aux événements et en fonction du contexte (clic, affichage, heure, etc.).

La ligne de code suivante illustre la simplicité et l’efficacité de DHTML. Si nous voulons que le titre H1 de couleur verte devienne rouge lorsque la souris passe dessus, il faut écrire :

< H1 onmouseover=”this.style.color = ‘red’;” > Fais-moi rougir < /H1>

3.3 – DHTML, et après ?

Le langage DHTML ne résout qu’un problème. Il apporte de la dynamicité. En revanche, il ne donne aucune intelligence aux documents. Son avenir est donc intrinsèquement compromis.


XML, historique du langage, 1/3 : les langages

(article paru en 2000, http://xmlfr.org/documentations/articles/000321-0001)

1 – Introduction

Les langages informatiques sont nés dans les années 1950, par exemple FORTRAN (1956), ALGOL, LISP (1958) et COBOL (1959). Au début des années 80, le nombre de langages était estimé à 3 millions … dont 450 étaient véritablement utilisés par une communauté significative. Je n’ai pas de données chiffrées pour aujourd’hui, mais on peut imaginer l’entropie !

Pour chaque catégorie de problèmes, il est possible de créer un langage adapté à l’aide duquel les-dits problèmes trouveront un exposé clair. Et l’on sait qu’un problème bien posé est à moitié résolu … Les mathématiciens et d’autres scientifiques (que nous appellerons les grammairiens formels) se sont intéressés aux langages. Ils les ont formalisés, classés, triés, outillés. C’est ainsi qu’ont été définies les  » générations  » de langages (les puristes en dénombrent habituellement 5) et les  » classes grammaticales  » de langages (le théoricien Noam Chomsky a proposé 4 classes).

Pour les outils, les débuts ont été très difficiles. Il fallait permettre à la machine de faire exactement ce que le programmeur voulait. Pour ne pas trahir la pensée du programmeur, il a fallu la structurer, l’exprimer sans ambiguïté, la traduire en séquences intelligibles par l’unité centrale … Les outils se sont peu à peu sophistiqués, optimisés, rationalisés et démocratisés. Maintenant la programmation se réduit parfois à un simple jeu de souris !

2 – La publication

Le domaine de l’édition a été très tôt informatisé. Dans les années 70, de gros systèmes de  » traitement de textes  » ont été conçus. Ils ont évolué progressivement pour donner naissance aux premiers programmes de PAO sur ordinateur personnel, c’était au début des années 80. Les organismes de normalisation se sont associés à ce progrès. Les gros constructeurs, propriétaires des systèmes des années 70, ont aussi poussé leurs solutions et leurs langages.

Dans les années 1960, IBM appuyait SGML, un langage conçu pour les systèmes de saisie de textes et de mise en page de textes, de recherche d’informations et de partage de documents.

Le célèbre langage HTML, parent direct de SGML, est apparu au début des années 1990. On comprend alors qu’il ne soit pas fait pour réaliser des programmes comme une comptabilité, un jeu vidéo ou un calcul de structures métalliques. Son propos est la publication d’information, ce qu’en d’autres termes on peut appeler la présentation d’une information contenue dans un contenant structuré.

3 – Les catégories

HTML peut être présenté comme le premier langage de l’Internet. Cependant, il ne permet qu’une présentation statique de l’information. C’est pour cette raison qu’on a très tôt cherché à lui donner des moyens interactifs complémentaires.

Plusieurs voies ont été abordées sur le poste client comme sur le serveur. A chaque choix correspondent des technologies et des langages.

Comme tous les langages ne servent pas le même propos, il faut distinguer les différentes catégories de langages. Certains sont descriptifs, d’autres permettent l’expression du style, ou donnent des moyens de programmation, etc.

Sans langages, pas d’expression. Mais faut-il une expression libre ? Nous l’avons vu, les langages répondent à des propos différents. Il en va de même pour ce que les langages décrivent. Si le problème est bien énoncé, en d’autres termes, si le programme est bien écrit alors il donne naissance à une application correcte.

C’est alors que les langages dédiés à la présentation sont arrivés …


  • Catégories

  • Calendrier

    mars 2024
    L M M J V S D
    « Mai    
     123
    45678910
    11121314151617
    18192021222324
    25262728293031
  • Archives

  • Copyright © 1996-2010 Blogabriel. All rights reserved.
    iDream theme by Templates Next | Powered by WordPress