La version française de cette traduction est :
http://www.la-grange.net/w3c/xhtml-modularization/

Traducteur : Karl Dubost - <karl+misc@la-grange.net>
La version française peut contenir des erreurs. La version anglaise de cette note est l'unique version normative. Version originale : http://www.w3.org/TR/2001/REC-xhtml-modularization-20010410

1. Introduction

Sommaire

Cette section est informative.

1.1. Qu'est-ce que XHTML ?

XHTML est la reformulation de HTML 4 en tant qu'application de XML. XHTML 1.0 [XHTML1] spécifie types de documents XML qui correspondent aux trois DTDs HTML 4 : stricte (Strict), transitoire (Transitional), et multifenêtrage (Frameset). XHTML 1.0 est la base d'une famille de type de document qui sont dérivés et étendent HTML.

1.2. Qu'est-ce que la modularisation de XHTML ?

La modularisation de XHTML est une décomposition de XHTML 1.0, et par référence à HTML 4, en une collection de modules fondamentaux qui donnent des types spécifiques de fonctionnalités. Ces modules fondamentaux sont implémentés dans cette spécification en utilisant le langage de définition de type de document, mais une implémentation utilisant les schémas XML est prévue. Les règles pour définir les modules fondamentaux, et pour les implémenter en utilisant les DTDs XML, sont également définis dans ce document.

Ces modules peuvent être combinés les uns avec les autres pour créer des sous-ensembles et des extensions de types de document XHTML qui font partie alors des membres de la famille XHTML des types de document.

1.3. Pourquoi modulariser XHTML ?

La modularisation de XHTML est le fait de spécifier des ensembles bien définies d'éléments XHTML qui peuvent être combinés et étendus par les auteurs de document, les architectes de types de document, et autres concepteurs de spécifications de standard XML, d'application et de produit qui permettra aux développeurs de contenu de les distribuer sur un plus grand nombre et diversité de plateformes.

Ces dernières années, de nombreux marchés spécialisés ont considéré HTML en tant que le langage de contenu. Il y a une forte tendance pour utiliser HTML sur un nombre de plus en plus important de platerformes informatiques. Actuellement, il y a une activité pour permettre d'avoir HTML sur les appareils mobiles (télévisions numériques, navigateurs web sur télévision, etc.), et matériels mono-fonctionnels (appliances - appareils à fonction unique). Chacun de ces appareils a des exigences et des contraintes différentes.

Modulariser XHTML fournit un moyen aux concepteurs de produit de choisir quels éléments seront supportés par un appariel en utilisant des blocs de construction standard et des méthodes standard pour choisir quels modules de construction pourront être utilisés. Ces modules servent de "référence de conformité" pour la communauté du contenu. La communauté du contenu peut maintenant s'appuyer sur la base installée qui intègre une certaine collection de modules, plutôt que de s'inquiéter sur la base installée qui intègre telle ou telle autre permutation d'éléments XHTML. En spécifiant un standard, les logiciels de traitement peuvent automatiquement adapter le contenu à un appareil, ou bien l'appareil peut automatiquement charger le logiciel requis pour traiter un module.

La modularisation permet également l'extension des capacités de mise en forme et de présentation de XHTML, en utilisant l'extensibilité de XML, sans casser le standard XHTML. Cette voie de développement donne un cadre stable, utile et implémentable pour les développeurs et les éditeurs de contenu, permettant de gérer le rythme rapide des changements technologiques du Web.

1.3.1. Modules fondamentaux

Un type de document XHTML est défini par un ensemble de modules fondamentaux. Un module fondamental définit un type de donnée qui est sémantiquement différent des autres. Les modules fondamentaux peuvent être combinés en types de document sans avoir une compréhension complète des schémas sous-jacents qui définissent ces modules.

1.3.2. Implémentations de module

Une implémentation de module consiste en un ensemble de types d'élément, un ensemble de déclarations de liste d'attributs, et un ensemble de déclarations de modèles de contenu, où chacun de ces trois ensembles peut être vide. Une déclaration de liste d'attribut dans un module peut modifier un type d'élément en dehors des types d'éléments définis dans le module, et une déclaration de modèle de contenu peut modifier un élément en dehors de l'ensemble du type d'élément du module.

Les DTDs XML sont un des mécanismes d'implémentation. Une DTD XML est une façon de décrire la structure d'une classe de documents XML, connus collectivement sous le le nom de type de document XML. Les DTDs XML sont décrites dans la recommandation XML 1.0 [XML]. Un autre mécanisme d'implémentation est le XML Schema [XMLSCHEMA].

1.3.3. Types de document hybrides

Un type de document hybride est un type de documents comporé à partir d'un ensemble de DTDs XML ou de Modules de DTD. Le but premier de l'environnement de modularisation décrit dans ce document est de permettre à un auteur de DTD de combiner des éléments provenant de plusieurs modules fondamentaux à l'intérieur d'un type de document hybride, de développer des documents selon ce type de document hybride, et de valider cette définition de type de document.

Un des bénéfices les plus importants de XML par rapport à SGML est que XML réduit la difficulté de standardiser des ensembles d'éléments permettant à des communautés d'échanger leurs données dans un format interopérable. Cependant, la nature relativement statique de HTML en tant que langage de contenu pour le web a entraîné que ces communautés n'ont eu que peu d'espoir que leurs types de documents XML soient adoptés largement en tant que standards du Web. L'environnement de modularisation permet l'incorporation dynamique de ces divers types de document, au sein de la famille XHTML de types de document, réduisant ainsi les barrières à l'incorporation de ces vocabulaires spécifiques à certains domaines dans les documents XHTML.

1.3.4. Validation

L'utilisation de documents bien formés, mais non valides, est un bénéfice important de XML. Dans le processus de développement d'un type de document, la valeur ajoutée créée par un parseur validant pour la vérification des erreurs est cependant important. La même affirmation s'applique aux types de document XHTML avec des éléments provenant de plusieurs modules fondamentaux.

Un document est une instance d'un type de document particulier défini par la DTD identifiée dans le prologue du document. Valider le document est le fait de vérifier que le document respecte les règles de la définition de type de document.

Un document peut être composé de fragments multiples de documents. Valider uniquement les fragments d'un document, où chaque fragment est d'un type de document différent des autres fragments du document, est en dehors de ce cadre - cela impliquant une technologie qui n'est pas encore définie.

Cependant, l'environnement de modularisation permet à des définitions de type de document multiples d'être intégrées et de former un nouveau type de document (e.g. SVG intégré à l'intérieur de XHTML). La nouvelle définition de type de document peut être utilisé dans le cadre d'un validation XML 1.0 normale.

1.3.5. Modèle de mise en forme

Les versions précédentes de HTML ont tenté de définir des parties du modèle dont les agents utilisateurs ont besoin lorsqu'ils mettent en forme un document. Avec l'avénement de HTML 4, le W3C a commencé à séparer la présentation de la structure. XHTML 1.0 perpétue cette séparation, et ce document continue dans cette voie pour HTML et ces héritiers. Ainsi, ce document n'a aucune exigence quant au modèle de mise en forme associé à la présentation des documents balisés grâce aux types de document de la Famille XHTML.

A la place, ce document recommande que les auteurs de contenu s'appuie sur des mécanismes de style tels que CSS pour définir le modèle de mise en forme de leur contenu. Lorsque des agents utilisateurs supportent les mécanismes de style, les documents seront formattés tel que désirés. Lorsque les agents utilisateurs ne supportent pas les mécanismes de style, les documents seront formatés de façon appropriée pour tel agent utilisateur. Ceci permet aux agents utilisateurs de la Famille XHTML de supporter des modèles de mise en forme riches sur des matériels où c'est approprié, et des modèles de mise en forme pauvre sur des matériels où ceci est approprié.