Lisez-moi S.V.P. 

1. Introduction

Sommaire

Cette section est informative.

1.1. Qu'est-ce que XHTML ?

XHTML est la reformulation de HTML 4 comme application de XML. XHTML 1.0 [XHTML1] spécifie trois types de document XML qui correspondent aux trois définitions DTD de HTML 4 : Strict, Transitional et Frameset. XHTML 1.0 est le socle d'une famille de types de document qui réduisent (subset) et étendent HTML.

1.2. Qu'est-ce que XHTML Modularization ?

XHTML Modularization est une décomposition de XHTML 1.0, et par référence de HTML 4, en une collection de modules abstraits qui offrent des types de fonctionnalité spécifiques. Ces modules abstraits sont mis en œuvre dans cette spécification à l'aide des langages XML Schema et DTD XML. Les règles de définition des modules abstraits, et leur mise en œuvre à l'aide de schémas XML et de définitions DTD XML, sont également décrites dans ce document.

Ces modules sont combinables entre eux et avec d'autres modules pour créer des types de document en réduction ou extension de XHTML, ces types de document appartiennent à la famille XHTML. Notez-le, alors que cette spécification ne contient que des exemples élémentaires de combinaison de ces modules en des langages de balisage. Pour des exemples plus complets, cf. [XHTMLBASIC] ou [XHTML11].

1.3. Pourquoi modulariser XHTML ?

La modularisation de XHTML se rapporte à la tâche de spécifier des ensembles bien définis d'éléments XHTML qui peuvent être combinés et étendus par les auteurs de documents, les architectes de types de document, d'autres spécifications de standards XML et d'autres concepteurs d'applications et de produits, afin qu'il soit économiquement viable pour les développeurs de contenus de livrer du contenu sur un plus grand nombre de plateformes diverses.

Au cours des dernières années, plusieurs marchés spécialisés ont commencé à voir en HTML un langage de contenu. Une grande tendance est d'utiliser HTML entre des plateformes de calcul de plus en plus variées. Actuellement, il y a des travaux afin d'apporter HTML aux appareils mobiles — les ordinateurs de poche, les téléphones portables, etc. —, aux appareils de télévision — les téléviseurs numériques, les navigateurs web sur téléviseur, etc. — et aux équipements spécialisés (appliances) — les appareils à fonction fixe. Chacuns ont des exigences et des contraintes différentes.

La modularisation de XHTML permet aux concepteurs de produits de spécifier quels éléments sont gérés par un appareil en utilisant des blocs de construction normalisés et des méthodes standards pour indiquer quels blocs sont employés. Ces modules servent de « points de conformité » pour la communauté du contenu (content community). La communauté du contenu peut alors cibler la base installée qui soutient une certaine collection de modules, au lieu de se soucier de la base installée qui soutient telle ou telle permutation d'éléments XHTML. L'utilisation de standards est essentielle à la réussite du XHTML modularisé à grande échelle. Il n'est pas viable économiquement pour les développeurs de contenus d'adapter le contenu à chacunes et toutes les permutations d'éléments XHTML. Avec la spécification d'un standard, les processus logiciels peuvent adapter de manière autonome le contenu à un appareil, ou bien l'appareil peut automatiquement charger le logiciel nécessaire pour traiter un module.

La modularisation permet aussi l'extension des capacités de mise en pages et de présentation de XHTML, sans contredire le standard XHTML. Cette voie de développement fournit un cadre stable, pratique et applicable (implementable) aux développeurs et éditeurs de contenus pour gérer l'évolution rapide des technologies sur le Web.

1.3.1. Modules abstraits

Un type de document XHTML est défini comme un jeu de modules abstraits. Un module abstrait définit un seul type de données qui est sémantiquement différent de tous les autres. Les modules abstraits peuvent être combinés en types de document sans connaissance approfondie des schémas sous-jacents qui définissent les modules.

1.3.2. Mises en œuvre des modules

La mise en œuvre d'un module se compose d'un ensemble de types d'élément, d'un ensemble de déclarations de liste d'attributs et d'un ensemble de déclarations de modèle de contenu, chacun de ces ensemble pouvant être vide. Une déclaration de liste d'attributs dans un module peut modifier un type d'élément hors de ceux définis dans le module, et une déclaration de modèle de contenu peut modifier un type d'élément en dehors du jeu de types d'élément du modèle.

Un mécanisme de mise en œuvre est celui des définitions DTD XML. Une définition DTD XML est un moyen de décrire la structure d'une classe de documents XML, appelés collectivement un type de document XML. Les définitions DTD XML sont décrites dans la recommandation XML 1.0 [XML]. Un autre mécanisme de mise en œuvre est celui de XML Schema [XMLSCHEMA]. Pour les besoins de l'explication dans ce document, nous désignerons les diverses mises en œuvre de XHTML Modularization comme étant des « schémas ».

1.3.3. Types des documents hybrides

Un type de document hybride est un type de document composé d'une collection de types de document ou modules XML. Le but principal du cadre de modularisation décrit dans ce document est de permettre au créateur d'un type de document de combiner des éléments issus de plusieurs modules abstraits en un type de document hybride, de développer des documents par rapport à ce type de document hybride et de valider ces documents contre le schéma hybride associé.

Un des avantages les plus précieux de XML sur SGML est que XML abaisse la barrière d'entrée de la standardisation des jeux d'éléments qui permettent aux communautés d'échanger des données dans un format interopérable. En revanche, la nature relativement statique de HTML en tant que langage de contenu du Web a fait que chacune de ces communautés n'avait auparavant guère d'illusions quant à voir une large adoption de leurs types de documents XML dans les standards du Web. Le cadre de modularisation autorise l'incorporation dynamique de ces divers types de document au sein de la famille XHTML des types de document, en déserrant encore les freins pour l'incorporation de ces vocabulaires, spécifiques d'un domaine, dans les documents XHTML.

1.3.4. Validation

L'utilisation de documents bien formés mais non valides est un avantage important de XML. Toutefois, dans le processus de développement d'un type de document, le levier supplémentaire offert par un analyseur validant (validating parser) pour la vérification des erreurs est important. La même remarque s'applique aux types de document XHTML avec des éléments provenant de plusieurs modules abstraits.

Un document de la famille XHTML est une instance d'un type de document particulier tel que spécifié par l'auteur du document, soit dans le prologue du document, soit au travers d'un autre mécanisme (par exemple, l'attribut schemaLocation). La validation du document est l'opération qui consiste à tester si le document satisfait aux règles du schéma associé.

Un document peut être constitué de plusieurs fragments de documents. La seule validation des fragments d'un document, où chaque fragment est d'un type de document différent de ceux des autres fragments du document, est hors de portée de ce cadre, car celle-ci nécessiterait une technologie qui n'est pas encore définie.

Par contre, le cadre de modularisation permet d'intégrer plusieurs schémas pour former un nouveau type de document (par exemple, du SVG intégré dans du XHTML). Le nouveau schéma peut servir à une validation XML 1.0 normale.

1.3.5. Modèle de formatage

Les versions précédentes de HTML essayaient de définir des parties du modèle que les agents utilisateurs étaient tenus d'utiliser pour formater un document. Avec HTML 4, le W3C a entamé un processus consistant à séparer la présentation de la structure. XHTML 1.0 a conservé cette distinction et ce document-ci continue à pousser HTML et ses descendants dans cette voie. Par conséquent, ce document n'énonce aucune exigence sur le modèle de formatage associé à la présentation des documents balisés avec les types de documents de la famille XHTML.

La recommandation de ce document est plutôt que les auteurs de contenus s'appuient sur des mécanismes de style tels que CSS pour définir le modèle de formatage de leurs contenus. Si les agents utilisateurs soutiennent les mécanismes de style, les documents se formateront comme prévu. S'ils ne les soutiennent pas, les documents se formateront comme bon leur semblera. Cela permet aux agents utilisateurs de la famille XHTML de soutenir des modèles de formatage riches sur les appareils où c'est approprié et des modèles de formatage pauvres où cela est approprié.