le XHTML1.0 est un format hybride :
- compatible avec les moteurs de rendu HTML des navigateurs : un navigateur incapable de traiter du XML peut gérer une page XHTML1.0 comme s'il s'agissait de HTML un peu curieux.
- compatible avec les moteurs de rendu XML : un navigateur capable de traiter du XML peut aussi gérer du XHTML1.0 en tant que XML, si on lui demande gentiment de le faire à l'aide de ce qu'on appelle les types de contenu, transmis via les en-têtes HTTP (discussions entre le navigateur et le serveur avant/pendant le chargement de la page).
Cette ligne <html...> est un bon exemple de cette nature hybride et de ses difficultés :
- l'
xmlns indique l'espace de nom XML qui n'a aucune utilité quand le XHTML sera traité comme du HTML, mais ne cause aucun souci non plus.
- le
xml-lang relève également du traitement en tant que XML, et ne pose non plus aucun souci.
- le
lang est le jumeau HTML du précédent, indiquant en HTML la langue de traitement du contenu (autrement-dit, dans quelle langue est écrit le contenu, par défaut, sauf mention contraire ici où là). Il est essentiel.
Normalement, pour respecter à la lettre les règles différenciant le XHTML1.0 traité en tant que HTML ou que XML, cette ligne devrait s'écrire :
<html lang="fr">
... pour du XHTML traité en tant que HTML (le cas le plus fréquent, celui que produisent Dreamweaver et ses utilisateurs)
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
... pour du XHTML traité en tant que XML. Cas rare, qui ne concerne pas les utilisateurs de Dreamweaver.
Donc ?
Dreamweaver génère une ligne comportant deux informations vitales (
html et
lang), et deux informations inutiles mais sans aucune conséquence dommageable
xmlns et
xml:lang).