Langage web : XHTML

Comprendre la transition HTML, XHTML et XML

eXtended HyperText Markup Language
Première publication : .
Mise en ligne: 9 février 2004.
Modifié le : 9 février 2004.
Par phnk
Comprendre la transition HTML, XHTML et XML, CSS, , W3C, , XHTML

Cet article décrit le pourquoi et le comment d’une conversion au XHTML dans ses grandes lignes, à destination d’utilisateurs non néophytes.

Le XHTML est une nouvelle manière de structurer ses pages Web. Elle présente le double avantage d’être très supérieure au HTML (I) sans en être trop éloignée (II). Cet article explique ce que l’on peut faire avec du XHTML, puis décrit une méthode de conversion rapide du code HTML vers le XHTML.

Ce document est plus compréhensible lorsque l’on maîtrise les concepts suivants : validation, W3C, standards. C’est pourquoi je décommande ce texte aux débutants complets. Le terme ’HTML’ employé au cours du texte désigne les langages HTML 3.2 et HTML 4 (tous types).

I. Pourquoi le XHTML

Le XHTML est une manière de s’éloigner d’un langage descriptif statique, le HTML, et de se rapprocher d’une forme plus dynamique d’écriture de pages Web, le XML.

1. Ce qui change en théorie

En HTML, <title> est la balise avec laquelle vous créez un titre de page ; <strong> est la balise avec laquelle vous marquez du texte en gras ; <textarea> est la balise avec laquelle vous ouvrez une boîte de texte. Un récent article liste quelques-unes de ces balises HTML.

En XHTML, vous continuerez à utiliser des balises pour structurer le contenu de votre page. Les deux langages restent, comme leurs acronymes l’indiquent, des MLs (Marking Languages) issus de la norme-souche ISO SGML (Standard Generalized Markup Language). Vous n’avez rien compris à cette fin de phrase ? Retenez simplement que le but du XHTML et celui du HTML sont identiques : structurer de l’information.

Cela dit, le XHTML est construit sur des bases XML. Le XML (eXtended Markup Language) est une structure beaucoup plus dynamique que celles décrites ci-dessus. Le XM vous laisse créer vos propres balises. La balise <incipit>, par exemple, n’existe pas en HTML ; elle n’apparaît pas dans la grammaire élémentaire du langage HTML et n’a aucune chance d’y figurer, la liste des balises étant inaltérable. En XML, vous pouvez créer une balise <incipit> pour structurer votre page, si vous en avez besoin. En HTML, pour distinguer le début d’un récit de sa suite, il vous faudra utiliser des classes, par exemple :

<p class="debut">Aujourd'hui, maman est morte.</p><br />
<br />
<p>Ou peut-être hier, je ne sais pas.</p>

Chez Albert Camus, il peut en effet être important de faire ressortir les premiers mots. En XML, on pourra écrire, dans l’absolu :

<incipit>Aujourd'hui, maman est morte.</incipit><br />
<br />
<p>Ou peut-être hier, je ne sais pas.</p>

Un deuxième exemple. Didier Bigo est un rédacteur régulier de la revue Cultures & Conflits ; son dernier article sur la politique des visas en Europe commence sur une accroche légèrement provocante et informelle. Voilà une manière de structurer cet article en XML :

<accroche>Une célèbre chanson de Saint-Domingue s'intitule visa pour un rêve, maintenant elle s'appellerait rêve de visa. </accroche><br />
<br />
<titre>Schengen et la politique des visas</titre><br />
<br />
<p>Le terme Schengen est maintenant habituel au grand public. Le nom de cette petite ville...</p>

Vous l’aurez compris, la différence entre XML et HTML, c’est que l’utilisateur crée les balises dont il a besoin. Par conséquent, il n’a pas besoin d’apprendre le XML comme on apprend un langage : il va écrire sa page dans ses propres termes.

Le XHTML est une transition entre un XML dynamique, libre, et un HTML rigide et statique.

Bien évidemment, la technologie la plus intelligente des deux (le XML) est encore en cours de développement, alors que la technologie la plus stupide des deux (le HTML) est largement achevée. Ce qui explique qu’en pratique, vous n’allez pas gagner grand chose à traduire votre code. Du moins, pas tout de suite.

2. Ce qui change en pratique

Le XLM est une technologie en développement. Les utilisateurs de news aggregators se servent du XML tous les jours (RSS, RDF…) mais c’est une exception (article à venir). En-dehors de l’exemple des feeds (fils) RSS/XML, le XML reste inconnu du grand public, tout simplement parce que les outils du grand public – les navigateurs Web – ne comprennent rien au XML.

De ce fait, la pratique du XHTML ne va pas vous apporter grand chose comparée à celle du HTML. Certains diront même que le XHTML est une perte de temps, qu’il est plus long à rédiger que le HTML. C’est faux, principalement parce XHTML et HTML se ressemblent énormément. Sauf que dans le XHTML, vous ouvrez la porte aux innovations futures du XML.

Je continuerai donc cet article en vous expliquant comment vous convertir au XHTML (ou plutôt convertir votre code). On retiendra de cette première partie la phrase suivante, issue de la recommandation XHTML du W3C :

“The XHTML family is the next step in the evolution of the Internet. By migrating to XHTML today, content developers can enter the XML world with all of its attendant benefits, while still remaining confident in their content’s backward and future compatibility.”

[La famille XHTML est la prochaine étape dans l’évolution d’Internet. EN migrant vers XHTML dès aujourd’hui, les développeurs rentrent dans le monde du XML et des bénéfices qu’il promet, tout en restant dans le champ du pré- et post-compatible].

Références
http://xml.com/pub/a/98/10/guide1.html
http://www.w3.org/TR/xhtml1/

II. Migration HTML vers XHTML

On se servira ici de la recommandation XHTML pour faire migrer rapidement un code HTML vers du XHTML.

1. Caractéristiques principales

a. Changement de fond

Migrer de HTML vers XHTML implique changer de langage et donc de DOCTYPE. Comme toute page valide aux yeux du W3C, le XHTML utilise un nouveau panel de DOCTYPEs, décrits en section 3.11 de la recommandation XHTML (http://www.w3.org/TR/XHTML1/#strict).

Dans le cadre d’une migration facile de HTML vers XHTML, on utilisera la déclaration XHTML 1 Transitionnel, qui suit.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//FR"<br />
       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

b. Changement de forme

Rentrons à présent dans le coeur de la migration HTML vers XHTML. Il s’agit de rendre les balises HTML conformes à la syntaxe XHTML.

Rassurez-vous, de nombreuses balises ne changent pas. Comme cité plus haut, <strong> reste <strong> en XHTML. Les balises ne changent pas de nature. Mais elles changent de degré. On retiendra trois changements :

-  Premièrement, toutes les balises doivent se fermer. En HTML, #ertaines balises s’ouvrent () puis se ferment (). D’autres restent ouvertes : <br>, <input>. En XHTML, les balises solitaires se ferment toutes seules. On écrira donc <br /> et <input />. Cela paraît étrange au premier abord, mais finalement c’est tout à fait logique. Un peu comme la syntaxe allemande.

-  Deuxièmement, les balises ne se chevauchent pas. La première balise à se fermer est la dernière à avoir été ouverte. C’est une manière compliquée de dire que ceci est correct :

<p>here is an emphasized <em>paragraph</em>.</p>

mais que ceci ne l’est pas :

<p>here is an emphasized <em>paragraph.</p></em>

Cet exemple est issu de la recommandation W3C. Dans le premier cas, on ouvre <p> puis <em>, on ferme <em> puis <p>. Dans le deuxième, on se mélange les pinceaux. En XHTML, ce n’est plus une écriture pardonnable.

-  Enfin, l’écriture des balises se fait en minuscules uniquement, et avec guillemets uniquement. En XML, en effet, <em> et <EM> ne sont pas identiques : le XML est case sensitive (il tient compte de la casse).

Somme toute, le XHTML va vous forcer à rédiger du bon code logique et lisible. Une formulation <P ALIGN=RIGHT> sera ainsi remplacée par <p align="right">. Vous vous rendrez compte que c’est tout de suite beaucoup plus propre et lisible, y compris dans les logiciels qui colorient la syntaxe (BBEdit, Mozilla).

La recommandation W3C évoque d’autres changements moins importants. On se sera rendu compte que ce code XHTML dont on vient de décrire la syntaxe dans ses grandes lignes, est totalement compatible avec les agents HTML (comme les navigateurs par exemple).

c. Transitions

Une des forces du langage XHTML est effectivement sa totale pré-compatibilité. Tout navigateur qui lit le HTML comprendra le XHTML. Vous ne risquez pas de perdre des utilisateurs en utilisant le XHTML, comme cela peut être le cas dans d’autres domaines (utilisation des CSS, par exemple).

Quand un changement menace de casser cette backwards compatiblity, le XHTML sert de transition. Il est ainsi prévu qu’à long terme, l’attribut id remplace l’attribut name dans les liens href. Exemple : <a href="http://www.phnk.com" name="foo"> deviendra <a href="http://www.phnk.com" id="foo">. Le XHTML 1.0 propose à ses développeurs d’inclure pour le moment les deux balises. Le XHTML 1.1 supprime l’attribut name.

On se trouve donc en présence d’un langage de transition plutôt simple à implémenter. Les dernières sections de cet article pointent quelques erreurs courantes et expliquent comment utiliser BBEdit pour faciliter la migration de grandes quantités de pages Web du HTML vers le XHTML.

2. Quelques subtilités

Ci-suivent quelques subtilités de la conversion HTML en XHTML. Les parties portent les noms des erreurs rapportées par le validateur W3C.

a. Unknown entity ("&")

Le XHTML vous forcera à encoder tous vos caractères spéciaux. Vous encodiez déjà "é" en &eacute;, par exemple. De même, vous encodiez & en &amp;, mais seulement dans vos textes, pas dans vos liens. Désormais, même dans vos liens, il vous faudra encoder les caractères "&".

Exemple
Incorrect : <a href="foo.cgi?chapter=1&section=2">...</a>
Correct : <a href="foo.cgi?chapter=1&amp;section=2">...</a>

b. Missing DOCTYPE (DOCTYPE manquant)

Alors que le reste du XHTML s’écrit en minuscules, le DOCTYPE s’écrit en majuscules. De mon point de vue, c’est idiot, mais c’est la norme. Pensez-y.

Exemple
Incorrect :

<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//fr"<br />
       "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">

Correct :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//FR"<br />
       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

Conclusion et prochains articles

La conversion XHTML n’est pas une révolution de la conception Internet. Rien à voir avec le passage aux feuilles de style (CSS) ou à Flash, par exemple. La migration vers le XHTML ne doit pas vous occuper plus d’une après-midi.

Certains garderont des réflexes HTML. Certains développeurs ont même décidé de rester sur du HTML, même si comme Mark Pilgrim, ils connaissent les possibilités du XHTML. Ce sont des choix souvent complexes, qui s’expliquent par des contraintes techniques professionnelles. Le programmeur du dimanche a tout intérêt à s’adapter à un nouveau standard aussi simple à adopter et qui promet tant.

Dans un prochain article, je donnerai un rapide aperçu des news aggregators et de la galaxie RSS/RDF, cas réussi d’expansion du XML grâce au weblogging. Je reviendrai sur le XHTML dans un article sur la fonctionnalité du logiciel BBEdit.

Envoyer
L'e-mail du destinataire :

Votre Nom :

Votre e-mail :


 |  Imprimer |  Réagir
Auteur : phnk
Site : phnk.com -> http://phnk.com/
Bio : Étudiant, Sciences Po Grenoble.
phnk
> Comprendre la transition HTML, XHTML et XML
Par Cedsun le 19 février 2004 - Menu du forum
 

Juste pour revenir sur un point important... on nous dit que le XHTML permet d’avoir du code super propre... Je suis d’accord là-dessus.

Mais pour ceux qui essaye de vivre grâce au développement web, c’est pas toujours évident. Lorsque vos clients vous font faire des modifs de dernières minutes, payé des queues de cerises et qu’il faut abattre un gros volume de travail pour s’en sortir, c’est pas toujours évident de faire du code propre... d’où l’intérêt de softs comme dreamweaver, qui permettent de speeder... mais qui, au final, font du code "crade".

Ce qui m’exaspère, c’est le fossé entre l’évolution des langages, et des techniques, et les contraintes économiques... Tu peux faire de la merde côté code, les clients s’en fichent... c’est très frustrant.

Des fois, c’est à se demander à quoi ça sert de faire évoluer tout ça.

 
Le site de Ced
 
> Comprendre la transition HTML, XHTML et XML
Par Captain_X le 9 février 2004 - Menu du forum
 

je dois etre un peu gland mais c’est le 2eme articles qui parle de ca (le premier dans macworld) et j’ai encore pas compris l’interet .....

d’autant que là :

Incorrect : <\a href="foo.cgi ?chapter=1&section=2">...<\/a>"

Correct : <\a href="foo.cgi ?chapter=1&section=2">...<\/a>"

je vois vraiment pas la différence ...

 
> Comprendre la transition HTML, XHTML et XML
Par Bazaar le 9 février 2004 - Menu du forum
 
Il y avait une erreur dans la présentation de l’article... Je me suis permis de corriger pour phnk. Cela devrait être plus clair maintenant :-)
 
> Comprendre la transition HTML, XHTML et XML
Par Pablo le 9 février 2004 - Menu du forum
 

En fait le XHTML est une méthode douce pour permettre aux personnes qui font des sites avec un peu de sérieux du côté du code, de permettre une structure plus évolutive, en l’occurrence vers le XML.

Le XHTML est au HTML ce que la grammaire est à une langue, une structure fiable.

Le XML est l’avenir des sites Internet et avec lui sa cohorte de codages, comme le XSL et XSLT (qui sert de pont entre les deux).

On ne devrait plus voir le XHTML comme une contrainte, mais bien comme un nouvel élan.

 
W3C
 
> Comprendre la transition HTML, XHTML et XML
Par fredmac le 17 février 2004 - Menu du forum
 

J’aimerais que l’on m’explique quel est l’intérêt de passer du machinbiduleTML vers le trucML qui nous permettra de faire des trucs très chouettes. Language vers lequel il faut que nous migrions tous, sous peine de buché ("des vanités").... ???

A part de l’auto sugestion je ne vois pas l’intérêt : repetez après mois 100 fois "machinbiduleTML est le language de l’avenir"... Fred

 
> Comprendre la transition HTML, XHTML et XML
Par phnk le 15 mars 2004 - Menu du forum
 

À vrai dire, les nouveaux standards ML ne sont pas rédigés par plaisir ou pur esthétisme comme tu sembles le penser.

Le XHTML se rapproche du XML, ce qui est une avancée considérable dans les possibilités qu’offriront les ML dans les années à venir. Le XML fait déjà fureur, dans les flux RSS par exemple (cf. mon autre article).

On y gagne en rigueur, en simplicité, en flexibilité, en puissance.

Voilà quelques pistes pour se défaire de l’idée que les Markup Languages sont auto suggestifs. Le W3C ne fait pas des standards comme M. Jourdain fait de la prose.

 
Copyright 2002-2017 xrings - Tous droits réservés - Mentions légales - Propulsé par SPIP - Webdesigner et référencement Frédéric Guerrier