Le but premier du W3C est l'accès universel aux informations
accessibles sur le réseau : permettre à n'importe
qui, n'importe où, d'accéder à Internet
n'importe quand, et ce quelle que soit ses caractéristiques
personnelles (langue, capacité physique, etc.).
Le W3C tient également à coeur la possibilité d'accéder à Internet à
partir de tout terminal, quel qu'il soit, et notamment les téléphones portables, agendas électronique
et autres. Mais comment faire pour que tous ces appareils, si différents soient-ils, comprennent le même langage ?
La recommandation
Modularisation
de XHTML est la réponse du W3C à l'épineux
problème d'un langage de balises trop simplifié
ou à multiples versions. Le consortium a choisi de décomposer
la spécification XHTML, afin de créer une DTD-socle et vingt-huit modules pouvant s'ajouter à celle-ci,
pour constituer la collection de balises nécessaires
à un support (voir les
apports de XHTML).
XHTML devient ainsi modularisé, mais aussi
extensible : tout comme on peut ajouter un module W3C officiel,
on peut ajouter un module tiers qui reprendrait précisément
les balises nécessaires. XHTML devient une sorte de
Lego, où l'on peut construire sa DTD selon ses besoins.
XHTML Modularization est donc une architecture permettant
de grouper des balises de même logique en modules, et
de grouper ces modules afin de créer un langage spécifique.
Les principaux modules
Voici une description de quelques-uns des modules disponibles,
rangés dans leur catégorie, parmi les plus importants
:
Modules de base
STRUCTURE : tout ce qui concerne
le squelette du document (body,
head, html,
title)
TEXT : balises permettant de
définir le type de texte, hors listes (p,
acronym, em,
strong...)
HYPERTEXT : le lien, tout simplement
(a)
LIST : les définitions
de liste (ul, li,
dt, dd...)
PRESENTATION : balises de mise
en page du texte (b, i,
hr, sub...)
BASIC FORMS: le minimum nécessaire
aux formulaires (form, input,
label, textarea...)
BASIC TABLES : le strict nécessaire
aux tableaux (table, td,
tr, th,
caption)
IMAGE : la balise image seule
(img)
OBJET : les balises de gestion
d'objets (object, param)
SCRIPTING : ce qui concerne
un contenu exécutable (script,
noscript)
STYLE SHEET : permet de styler
le document (style)
LEGACY : les éléments
ne devant plus être utilisés... mais quand même
disponibles au cas où (font,
center, strike,
u...)
Sur les 28 modules disponibles, quatre sont nécessaires
pour que le document soit conforme : les modules de base Structure,
Text, HyperText et List.
Tous groupés, ces 28 modules nous donnent XHTML
1.1 ("module-based XHTML"), qui fonctionne comme
XHTML 1.0. XHTML ne perd donc pas en fonctionnalités,
et gagne énormément en flexibilité, comme
la possibilité de créer des profils ou des
sous-langages...
XHTML-Basic peut être considéré comme
un profil tiré de XHTML 1.1 : il n'utilise que 11 modules
sur les 28 (Structure, Text, HyperText, List, Basic Forms,
Basic Tables, Image, Objet, Metainformation, Link et Base).
Beaucoup plus léger, il est amené à remplacer
à terme les langages WML (du système Wap) et
C-HTML (du système i-Mode). Son autre grand avantage
est de pouvoir afficher une page différente sur ordinateur
ou sur terminal léger sans devoir faire appel à
un second document.
Voici un court document utilisant XHTML-Basic :
<?xml version="1.0"?>
<!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML Basic 1.0//EN"
"http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">
<html xmlns = "http://www.w3.org/1999/xhtml">
<head>
<title>Poupoule?</title>
</head>
<body>
<p>Une poule sur un
mur qui picotte du pain dur.</p>
</body>
</html>
Application
Les modules s'ajoutent au document XHTML au travers de la
DTD du document : à partir de la DTD XHTML de base,
chacun est libre de créer une DTD adaptée à
ses besoins, et même de créer des balises de
toutes pièces afin de servir au mieux le support visé.
Ainsi, pour un support ne pouvant afficher que du texte, des
liens et des images, il est inutile de lui fournir des documents
répondant à la DTD complète de XHTML
1.1. Il sera alors préférable que les documents
se conforment à une DTD plus simple, ne prenant en
compte que les balises utilisables.
L'idée ici est donc de créer sa propre DTD (voir Lire
et écrire une DTD),
qui reprendrait la DTD XHTML de base (Structure, Text, HyperText,
List) et y ajouterait le seul autre module dont nous avons
besoin, Image. On le nommera XHTML-Image-only 1.0, et un document
qui y fera référence aura le doctype suivant
(l'URL est fictive):
<!DOCTYPE html PUBLIC
"-//Journal du Net//DTD XHTML-Image-Only 1.0//EN"
"http://www.journaldunet.com/dtd/xhtml-image-only10.dtd">
Le fichier xhtml-image-only10.dtd aura pour sa part le contenu
suivant :
<?xml version="1.0" encoding="iso-8859-1"?>
<!ENTITY % XHTML.ns "http://www.w3.org/1999/xhtml" >
<ENTITY % xhtml-framework.mod
PUBLIC "-//W3C//ENTITIES XHTML 1.1 Modular Framework
1.0//EN" "xhtml11-framework-1.mod" >
%xhtml-framework.mod;
<!ENTITY % xhtml-struct.mod
PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Structure 1.0//EN"
"xhtml11-struct-1.mod" >
%xhtml-struct.mod;
<!ENTITY % xhtml-text.mod
PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Text 1.0//EN"
"xhtml11-text-1.mod" >
%xhtml-text.mod;
<!ENTITY % xhtml-hypertext.mod
PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Hypertext 1.0//EN"
"xhtml11-hypertext-1.mod" >
%xhtml-hypertext.mod
<!ENTITY % xhtml-list.mod
PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Lists 1.0//EN"
"xhtml11-list-1.mod" >
%xhtml-list.mod;
<!ENTITY % xhtml-image.mod
PUBLIC "-//W3C//ELEMENTS XHTML 1.1 Images 1.0//EN"
"xhtml11-image-1.mod" >
%xhtml-image.mod;
|
Forum |
|
Réagissez
dans les forums
de JDN Développeurs
|
Pour résumer, nous avons construit ici, au fur et à mesure, le jeu de
balises que nous voulions utiliser, en commençant par définir
notre DTD comme répondant aux spécifications
de XHTML Modularization, puis en ajoutant les blocs de balises
de base (Structure, Text, HyperText, Lists), et enfin, notre
bloc Image - le tout correspondant à des modules.
|