Logo des formations Webmaster online
Les formations du Net

 
  Formations

 

 
online

 
Webmaster : la formation

 
Webmaster : la formation

 

 

 
XHTML

 
Formation Webmaster : XHTML

 
Formation XHTML : head

 
Formation XHTML : texte

 
Formation XHTML : images

 
Formation XHTML : liens

 
Formation XHTML : listes

 
Formation XHTML : tableaux

 
Formation XHTML : frames

 
Formation XHTML : formulaires

 
Formation XHTML : multimédia

 

XHTML et


 
Formation XHTML : feuilles de style

 
Formation XHTML : JavaScript

 
Formation XHTML : XHTML et DHTML

 
Formation XHTML : XHTML et XML

 

 
last revised :
November 17, 2004

 
Niveau 1 Webmaster pro online   Niveau 1 Webmaster pro online Niveau 2 Webmaster pro online   Niveau 2 Webmaster pro online Niveau 3 Webmaster pro online   Niveau 3 Webmaster pro online Niveau 4 Webmaster pro online   Niveau 4 Webmaster pro online Niveau 5 Webmaster pro online   Niveau 5 Webmaster pro online

 

Introduction au XHTML

Arrivé à la version 4 du HTML, le W3C - l'organisme responsable de la "normalisation" du langage de base employé par le Web - s'est rendu compte que les balises et attributs de son idiome préféré ne seront plus longtemps suffisants pour diriger les tâches futures de l'Internet. C'est qu'à la fin 2002, seulement 25 pour cent des internautes utiliseront encore un navigateur "classique" pour visualiser des pages sur un écran "classique" d'ordinateur. On pense que 75 pour cent des futurs surfers préféreront des supports alternatifs tels que les téléphones portables, les téléviseurs, les ordinateurs de voiture etc. Nous aurons donc besoin non seulement de navigateurs adaptés à ces nouveaux supports, mais aussi de langages adéquats.
 
L'idée, toutefois, d'être obligés de programmer ses futurs sites en, peut-être, quatre ou cinq langages différents - un pour chaque support - a tout pour effrayer un Webmaster déjà surmené. Il est vrai que personne n'a jamais demandé leur avis aux créateurs des sites... mais l'expérience a déjà établi la règle : plus efficace le travail des Webmasters, plus grand le nombre des sites valables sur le Net. Les membres du W3C ont donc compris qu'il est nécessaire de mettre à leur disposition un idiome assez flexible pour être accepté par tous les supports modernes.
 
C'est pourquoi, le 26 janvier 2000, ils ont lancé un tel langage, le XHTML 1.0 qui, enfin, a créé le "pont" si recherché qui mène de "l'ancien" Web au réseau "étendu" de l'avenir. Comme l'indique son nom, la nouvelle création est une sorte de "mélange" réussi du HTML et du XLM, associant les vertus des deux. Le HTML, pourrait-on dire, a donné son vocabulaire, le XML a offert sa syntaxe...

XHTML, une version moderne du HTML ?

Le HTML, le HyperText Markup Language, consiste dans un certain nombre d'éléments - de marqueurs - dont l'ensemble forme la base de l'idiome. Pour ajouter un élément à cet ensemble, il est donc nécessaire de "réformer" sa structure entière ce qui, chaque fois, entraîne le besoin d'une nouvelle génération de navigateurs, oblige les internautes de se procurer des mises à jour ...

Le XML, par contre, l'eXtensible Markup Language, a l'avantage d'être plus "souple" déjà dans sa base. Non seulement qu'il permet aux programmeurs de déclarer leurs propres balises, il est évidemment aussi ouvert à tout nouvel élément introduit du côté "officiel".

Finalement, le XHTML, l'eXtensible HyperText Markup Language, a combiné ces deux idiomes au point de disposer d'un vocabulaire aussi facile que celui du HTML mais, en même temps, de pouvoir profiter du "talent" du XML de s'adapter aux exigences de la technique future sans qu'il soit nécessaire de modifier sa structure de base pour chaque nouvelle invention.

Ceux qui maîtrisent le HTML - complété par une bonne connaissance de la technique des CSS - ne rencontreront alors aucune difficulté et apprendront le nouveau langage sans aucun problème.
 
Les études du XHTML ont également l'avantage de fournir au programmeur une base solide lui permettant d'accéder plus facilement aux autres applications fondées sur XML comme, par exemple, le SMIL ou le WML. - Bien qu'il y ait un tout petit "défaut"...
 
Lorsque les créateurs des navigateurs se sont aperçus du nombre de plus en plus important de Webmasters qui ont appris leur HTML "sur le tas" et qui, par conséquent, sont souvent loin de se tenir aux règles fixées par le W3C, ils ont tout fait pour que les fautes des "Webmasters amateurs" ne se remarquent pas. C'est pourquoi certains navigateurs sont même capables d'interpréter un code dont la syntaxe n'est pas du tout correcte...
 
Le XHTML, malgré sa souplesse, n'est par contre jamais prêt à "pardonner" la moindre faute de frappe, de syntaxe ou les "produits" de pure inattention.

Ainsi, nous pouvons dire que nous avons affaire à
une sorte de HTML "moderne", tout à fait renouvelé, mais

 

 
Code XHTML : plus strict que HTML
qui, bien qu'il ait gardé bon nombre de ses anciens principes, est devenu beaucoup plus strict ;

 
Code XHTML : plus souple que HTML
plus souple en ce qui concerne les commandes et prêt à recueillir toute sorte de nouvel élément ;

 
Code XHTML et les nouveaux supports
capable de communiquer avec tous les nouveaux supports à la fois ;

 
Code XHTML et les techniques futures
adaptable aux techniques et supports futurs ;

 
Code XHTML : aussi facile que le HTML
aussi facile à apprendre et à employer que le HTML "classique".

 

 

Et n'oublions surtout pas un autre avantage très appréciable du XHTML : déjà la génération présente de navigateurs est capable de le comprendre...

Le XHTML face au HTML

Si, maintenant, nous prenons la décision de transformer nos pages HTML en pages XHTML ou, alternativement, de programmer directement en XHTML, nous disposons d'un avantage non négligeable : grâce à notre formation HTML, nous possédons déjà des connaissances parfaites des balises et attributs. Nous n'avons donc pas besoin de repartir à zéro. - Comme le XHTML se sert pratiquement des mêmes éléments que le HTML, nous pouvons nous servir de ce que nous maîtrisons depuis longtemps - nous n'avons qu'à l'adapter à l'écriture XML.
 
Toutefois, nous avons déjà appris que le XHTML - au contraire du HTML - fait partie de la "famille" des langages XML. Il est donc logique que, malgré toute affinité entre les deux techniques, on trouve toujours certaines différences entre une page rédigée en HTML et un code écrit en XHTML. Prenons, par exemple, les lignes suivantes. Bien que, dans les deux cas, les navigateurs affichent des résultats identiques, les codes n'ont pas tout à fait la même apparence.

Code HTML :

 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd">
<HTML>
<HEAD>
<TITLE>
titre soigneusement choisi</TITLE>
...
</HEAD>
<BODY>
<H1>
Titre du chapitre</H1>
...
</BODY>
</HTML>

 

 
<?xml version="1.0"?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>
titre soigneusement choisi</title>
...
</head>
<body>
<h1>
Titre du chapitre</h1>
...
</body>
</html>

 
Nous nous rendons alors compte

 

 
Les particularités du code XHTML
que toutes les instructions (balises, attributs, etc.) du code XHTML sont rédigées en minuscules.

 
Au contraire du HTML dont la technique accepte un "mélange" de majuscules et minuscules - bien qu'un tel mélange soit contre la norme du W3C - le XML et le XHTML distinguent strictement ces caractères. Tandis qu'une faute de frappe du genre <Table...> au lieu de <TABLE...> est tolérée par la plupart des navigateurs HTML, le XHTML la considérerait comme instruction "fautive" qui, par conséquent, serait carrément "sautée" par ses browsers.

 

 

 
Les particularités du code XHTML
que le code XHTML contient l'instruction <?xml...?>.

 
Cette instruction communique au navigateur qu'il a affaire à un document de la famille XML. Pour le moment, elle n'est pas encore reconnue par les navigateurs, mais son emploi est déjà recommandé par le W3C.

 

 

 
Les particularités du code XHTML
que, dans le code XHTML, l'élément <!DOCTYPE... > est la seule ligne qui contient du code rédigé en majuscules.

 
Cet élément identifie le document comme page rédigée dans un langage faisant partie de la "famille" XML. Il fait partie des normes fixées par le W3C dans une sorte de "papiers de base", les DTDs (document type definition). La partie <...//EN"...> indique que la "définition du type de document" (DTD) employée par notre code est rédigée en anglais.

 
Le contenu d'une DTD peut être comparé aux normes définies par le W3C dans ses différentes versions du HTML, par exemple le HTML 4.01, la dernière version qui a été appliquée - avec la différence qu'il n'y a qu'un seul HTML 4.01, tandis que chaque document XML - ou, dans notre cas, XHTML - peut disposer de sa propre DTD. Plus tard, nous apprendrons à rédiger nos propres DTDs "individuelles".

 

Car n'oublions pas que l'atout le plus fascinant du XML reste la possibilité de pouvoir créer ses propres marqueurs et, de cette façon, élargir les facultés du HTML. Pour que les marqueurs que nous créons soient reconnus, nous les plaçons dans la DTD qui "gouverne" notre page.

Note : Une DTD comporte tous les éléments de syntaxe qui peuvent être employés dans le code du document - c'est-à-dire qu'elle décide, de quels marqueurs, attributs etc. nous avons le droit de nous servir et de quelle manière ils doivent être interprétés par les navigateurs. Nous disposons de DTDs prédéfinies, mais nous pouvons aussi les rédiger nous-mêmes.


 
Les particularités du code XHTML
que la balise <html> de notre code XHTML dispose de trois attributs inconnus par le langage HTML :

 
xmlns dont nous aurons besoin au moment où nous créerons nos propres marqueurs. L'attribut sera traité dans le cadre du chapitre XML de cette formation du XHTML.

 
xml:lang="en" avertit le navigateur que la page doit été traitée en tant que document XML. La valeur "en" indique que les balises sur cette page sont rédigées en langue anglaise. - Actuellement, cet attribut ne dispose encore que d'une seule valeur, c'est-à-dire de "en". Mais à l'avenir, nous pourrons compter sur la possibilité d'écrire nos marqueurs aussi dans d'autres langues, par exemple en français.

 
lang="en" fournit au navigateur l'information que les balises sont rédigées en langue anglaise sans, pour autant, lui indiquer s'il est confronté à une page en HTML, XML ou autre.

 

 
Lorsque le navigateur se branche sur notre page, il tombe sur l'URL

 
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd

 
Sous cette adresse, il trouve un document du W3C qui contient la syntaxe complète de la version 1 du XHTML. Au moment où s'ouvre la page, ce document est automatiquement chargé par le navigateur qui, ensuite, se met à comparer la syntaxe employée dans notre code avec celle du fichier rédigé par le W3C.

Attention : Si, au cours de ce processus, il trouve un seul caractère qui ne correspond pas aux normes ou si, pire, l'auteur de la page avait oublié d'introduire l'appel de l'URL dans son code, l'affichage correct est loin d'être garanti.

Les DTDs prédéfinies

La version 1.0 du XHTML, fixée en forme de plusieurs DTDs prédéfinies, peut être considérée comme une sorte de "transformation" du HTML 4 en document XML/XHTML. Ce système de "transformation" nous permet d'utiliser les balises et attributs dont nous nous servons déjà depuis le début de notre formation. Mais il nous épargne surtout la tâche de rédiger nous-mêmes nos DTDs - c'est-à-dire de définir chaque marqueur que nous employons dans une page. Ainsi, la technique des DTDs nous offre la possibilité bien appréciable de créer nos propres éléments. Toutefois, grâce aux documents prédéfinis, nous ne sommes pas obligés de nous consacrer à cette tâche sans raison majeure.

Actuellement, nous disposons de trois versions de DTDs prédéfinies :

 
(1) Strict : Cette version a la particularité de n'accepter aucun marqueur ou attribut non "recommandé". C'est que, du point de vue technique, le HTML nous permet toujours de nous servir d'éléments "anciens" - plutôt mal vus par le W3C - du style de la balise <CENTER> ou des marqueurs comme <FONT> sans attributs HTML liés qui, quoique "condamnés", sont toujours employés avec des feuilles de style. Les DTDs genre strict, par contre, interdisent toute utilisation d'éléments non "purs" - toute sorte de marqueur ou attribut non "recommandés" en sont alors strictement exclus.

 
Pour appeler une DTD du type strict, nous nous servons du code

 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

 
(2) Transitional : Ici, nous avons affaire à la version la plus fréquemment employée et, en même temps, la plus proche d'une programmation genre HTML 4. Elle accepte toutes les balises et attributs du HTML. Toutefois, elle refuse les éléments qui n'appartiennent qu'à un seul navigateur - tous ceux, par exemple, qui ne sont reconnus que par Microsoft ou, alternativement, ceux qui ont été "inventés" par Netscape et qui n'ont jamais été adaptés par le W3C.

 
Si nous nous décidons pour ce type de DTD, nous utilisons le code

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

 
(3) Frameset : L'emploi de cette version est appliqué aux pages d'accueil invisibles des sites qui basent entièrement - ou principalement - sur la technique des frames.

 
Ce genre de DTD est appelé par

 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">

 

La nouvelle version XHTML 1.1


 
Depuis l'année 2001, une nouvelle version du XHTML se tient à notre disposition, le XHTML 1.1. Pour en avoir d'informations plus détaillées, nous pouvons nous brancher au site du W3C, à l'URL

 
http://www.w3.org/TR/2001/PR-xhtml11-20010406/introduction.html

 
Avec cette nouvelle version, nous sommes confrontés à un XHTML "nettoyé" qui rappelle plutôt l'édition "stricte" de l'ancien HTML 4.01. Cette ressemblance à pour conséquence que le programmeur est obligé de maîtriser parfaitement la technique des feuilles de style et, évidemment, de connaître "par coeur" tous les marqueurs HTML.

Pourtant, malgré toutes ses vertus, la nouvelle version a aussi un désavantage - bien que ,par un programmeur habile, il puisse être transformé en avantage. C'est qu'elle empêche l'emploi d'un bon nombre de facultés qui, jusqu'à lors, nous ont été proposées par nos navigateurs. Mais en exploitant la possibilité d'établir des documents personnalisés - c'est-à-dire d'écrire nos propres DTDs - nos chances de créer une page intéressante sont finalement plus grandes qu'auparavant.


 

Le code XHTML : ce qui le distingue du HTML


 
Avant d'entrer dans les détails, établissons d'abord une liste des points caractéristiques les plus essentiels qui distinguent un code rédigé en XHTML d'un code HTML.

 
(1) Une différence importante entre le HTML et le XHTML consiste dans l'emploi des majuscules et des minuscules. La norme du HTML demande que les balises soient rédigées en majuscules tandis que les minuscules restent réservées aux attributs et valeurs. Les navigateurs XHTML, par contre, n'acceptent que les minuscules. Toutes sortes d'expressions qui contiennent des majuscules seraient ignorées ou, pire, mal interprétées. Un code en XHTML prendrait donc la forme

 
<h4>...contenu de ce chapitre...</h4>
<p><img src="." /><a href="...">
...texte...</a></p>

 
(2) Le même principe compte pour les guillemets autour des valeurs. Bien que la norme du HTML exige qu'ils soient toujours placés, les navigateurs sont capables de s'en passer. En XHTML, par contre, une valeur sans guillemets n'est jamais reconnue correctement. Nous procédons alors toujours selon l'exemple

 
<h1 align="center">...titre...</h1>

 
(3) Dans les premiers jours de notre formation, nous avons étudié les règles de l'imbrication : toutes les balises qui sont ouvertes doivent être fermées dans l'ordre opposé à leur ouverture. Mais tandis que quelques navigateurs HTML - au contraire de la validation W3C aux services de laquelle nous prenons régulièrement recours - "pardonnent" la violation des normes et interprètent correctement mêmes les codes un peu "fautifs", le XHTML exige la "coordination" parfaite des marqueurs. Nous sommes donc toujours obligés de nous tenir à la règle

 
<p>... texte ...<i><big>... texte ...</big></i>... texte ...</p>

 
(4) En HTML, nous tombons parfois sur des marqueurs qui peuvent être employés avec et sans leur partenaire final. En XHTML, par contre, cela est impossible. Ici, les balises apparaissent principalement en "couple", du genre

 
<p>... texte ...</p>

 
(5) Pour les balises, par contre, qui, en HTML, ne possèdent pas de partenaire final, le XHTML a inventé une autre forme. Comme toujours, on les place au début d'un code, mais on leur accorde en plus un indicateur final :

 
<img /> ou <hr /> ou <br />

 
(6) Nous sommes déjà tombés sur des attributs appelés booléens qui ont la particularité de se passer de toute sorte de valeur. En XHTML, les mêmes attributs exigent qu'on leur accorde toujours des valeurs adéquates. Au lieu, par exemple, de nous contenter d'appeler l'élément "checked" - suffisant pour les navigateurs HTML -, nous écrivons alors

 
<input type="checkbox" checked="checked">

 

 
(7) À certaines balises, le XHTML a attribué des règles spéciales assez strictes :

 
Les 
particularités du code XHTML  
Deux couples <a>...</a> ne doivent jamais être imbriqués

 
Les 
particularités du code XHTML
Deux couples <form>...</form> ne doivent jamais être imbriqués

 
Les 
particularités du code XHTML
Deux couples <label>...</label> ne doivent jamais être imbriqués

 
Les 
particularités du code XHTML
Il est interdit de placer les balises <button>, <fieldset>, <form>, <iframe>, <input>, <isindex>, <label>, <select> ou <textarea> entre les marqueurs <button> et </button>

 
Les 
particularités du code XHTML
Il est interdit de placer les balises <big>, <img />, <object>, <small>, <sub> ou <sup> entre les marqueurs <pre> et </pre>

 

 
(8) Tandis qu'en HTML, nous avons pratiquement toujours le droit d'employer l'attribut name, le XHTML exige qu'il soit remplacé par id lorsque nous avons besoin de l'attacher aux balises

 
<a>, <applet>, <form>, <frame>, <iframe>, <img /> ou <map>.

 
(9) Le XHTML interdit également l'emploi du caractère & dans le texte ou, comme dans notre exemple, dans le cadre d'une valeur d'attribut. Il est remplacé par le code &amp;. Pour recevoir le résultat "black & white, nous sommes donc obligés d'écrire

 
<h1 title="black&nbsp;&amp;&nbsp;white">... titre ...</h1>

 
Attention : nous n'avons évidemment pas oublié que le code &nbsp; insère un espace tandis que &amp; remplace le caractère &.

 
 

 

Copyright: TechnoLangue, 1997-2004
last revised: November 17, 2004

 
Document conforme à la norme du HTML 4.01Document conforme à la normde CSS2
 
 Formations online   Cours online Formation Webmaster : les sujets   Formation Webmaster : les sujets Vos questions, nos réponses   Vos questions, nos réponses Formulaire d'inscription   Formulaire d'inscription TechnoLangue   TechnoLangue e-mail pour formation Webmaster online   e-mail pour formation Webmaster online