Sommaire
Cette section est normative.
Un module abstrait est une définition d'un module XHTML utilisant du texte ordinaire et quelques conventions de marquage informelles. Bien qu'une telle définition n'ait en général pas d'utilité dans le traitement machine des types de document, elle est essentielle pour aider les personnes à comprendre ce que contient le module. Cette section décrit la méthode avec laquelle les modules abstraits sont définis. Un module conforme à XHTML n'est pas obligé de fournir une définition de module abstrait. Par contre, quiconque développe un module XHTML est encouragé à fournir une abstraction afin de faciliter l'utilisation du module.
Les modules abstraits ne sont pas définis dans une grammaire formelle. Toutefois, les définitions adhèrent aux conventions syntaxiques suivantes. Ces conventions sont semblables à celles des définitions DTD XML et devraient être familières aux créateurs de définitions DTD XML. Chaque élément syntaxique discret peut se combiner à d'autres pour fabriquer des expressions plus complexes conformes à l'algèbre définie ici.
expr ?expr est permise.expr +expr sont obligatoires.expr *expr sont permises.a , ba est obligatoire, suivie de l'expression b.a | ba et b est obligatoire.a - ba est permise, en omettant les éléments dans l'expression b.&).*).|), entre des parenthèses à la suite du nom de l'attribut.
Si l'attribut a une valeur par défaut, celle-ci est suivie d'une astérisque (*).
Si l'attribut a une valeur fixe, le nom de l'attribut est suivi d'un signe égal (=)
et la valeur est entre guillemets.Les définitions des modules abstraits établissent les modèles de contenu minimaux, atomiques, de chaque module. Ces modèles de contenu minimaux référencent les éléments dans le module même. Ils peuvent aussi référencer des éléments dans les autres modules dont dépend le module abstrait. Enfin, le modèle de contenu demande dans beaucoup de cas que le texte soit permis comme contenu d'un ou plusieurs éléments. Auxquels cas, le texte est symbolisé par PCDATA, une abréviation anglaise de « parsed character data » (en français, données textuelles analysables), dénotant les séquences de caractères à analyser par un processeur XML à la recherche du balisage (données textuelles traitées). Un type de contenu peut aussi être défini par EMPTY (vide), signifiant que l'élément n'a pas de contenu dans son modèle de contenu minimal.
À certaines occasions, il est nécessaire de définir les types des valeurs d'attribut ou l'ensemble explicite des valeurs permises pour les attributs. Les types d'attribut suivants (définis dans la recommandation XML 1.0) sont utilisés dans les définitions des modules abstraits :
| Type d'attribut | Définition |
|---|---|
| CDATA | Données textuelles (character data). |
| ID | Un identificateur unique au document. |
| IDREF | Une référence à un identificateur unique au document. |
| IDREFS | Une liste de références à des identificateurs uniques au document, séparées par des espaces. |
| NAME | Un nom avec les mêmes contraintes de caractères que le type ID plus haut. |
| NMTOKEN | Un nom composé seulement d'atomes de nom (name tokens), comme défini dans XML 1.0 [XML]. |
| NMTOKENS | Une ou plusieurs valeurs de type NMTOKEN, séparées par des caractères blancs. |
Outre ces types de données prédéfinis, XHTML Modularization définit les types de données suivants et leur sémantique (si besoin) :
| Type de données | Description | ||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Character | Un seul caractère [ISO10646]. | ||||||||||||||||||||||||||||||||
| Charset | Un codage des caractères, selon le document [RFC2045]. | ||||||||||||||||||||||||||||||||
| Charsets | Une liste de codages des caractères, selon [RFC2045], séparés par des espaces. | ||||||||||||||||||||||||||||||||
| Color |
Le type de valeur d'attribut "Color" se rapporte aux définitions de couleur comme indiqué dans [SRGB]. Une valeur de couleur peut soit être un nombre hexadécimal (préfixé d'un caractère dièse), soit l'un des seize noms de couleur. Les noms de couleur ne dépendent pas de la casse.
Ainsi les valeurs de couleur "#800080" et "Purple" désignent toutes deux la couleur violette. |
||||||||||||||||||||||||||||||||
| ContentType | Un type de média, selon le document [RFC2045]. | ||||||||||||||||||||||||||||||||
| ContentTypes | Une liste de types de média, selon [RFC2045], séparés par des virgules. | ||||||||||||||||||||||||||||||||
| Coords | Une liste de coordonnées, séparées par des virgules, à utiliser pour la définition de zones. | ||||||||||||||||||||||||||||||||
| Datetime | Une information de date et d'heure. | ||||||||||||||||||||||||||||||||
| FPI | Une chaîne de caractères représentant un identificateur public formel (Formal Public Identifier) SGML. | ||||||||||||||||||||||||||||||||
| FrameTarget | Le nom du cadre utilisé comme destination des résultats de certaines actions. | ||||||||||||||||||||||||||||||||
| LanguageCode | Un code de langue, selon le document [RFC3066] ou ses successeurs. | ||||||||||||||||||||||||||||||||
| LanguageCodes | Une liste de gammes de langue, séparées par des virgules, avec des paramètres q optionnels, comme défini à la section 14.4 du document [RFC2616] en valeur du champ Accept-Language d'une en-tête de requête. Les codes de langue particuliers devraient être conformes au document [RFC3066] ou ses successeurs. | ||||||||||||||||||||||||||||||||
| Length | La valeur en pixels ou en pourcentage de l'espace horizontal ou vertical disponible. Ainsi la valeur "50%" signifie la moitié de l'espace disponible. | ||||||||||||||||||||||||||||||||
| LinkTypes |
Les auteurs peuvent utiliser les types de lien reconnus suivants, listés ici avec leurs interprétations conventionnelles. Une valeur de type LinkTypes se rapporte à une liste de types de lien, séparés par des espaces. Les autres caractères blancs ne sont pas permis dans les types de lien. Ces types de lien ne dépendent pas de la casse, c'est-à-dire que "Alternate" a la même signfication que "alternate". Les agents utilisateurs, les moteurs de recherche, etc. peuvent interpréter ces types de lien de diverses façons. Par exemple, les agents utilisateurs peuvent offrir un accès à des documents liés à l'aide d'une barre de navigation.
Les auteurs peuvent vouloir définir d'autres types de lien non décrits dans cette spécification. Pour ce faire, ils devraient utiliser
un profil afin de citer les conventions employées pour définir les types de lien. Veuillez considérer l'attribut Notez que, dans une version future de cette spécification, le groupe de travail prévoit de faire évoluer ce type de nom de simple à qualifié (QName). |
||||||||||||||||||||||||||||||||
| MediaDesc |
L'attribut MediaDesc est une liste de descripteurs de média, séparés par des virgules. Voici une liste des descripteurs de média reconnus :
Les versions futures de XHTML pourront introduire de nouvelles valeurs et admettre des valeurs paramétrées. Afin de faciliter l'introduction de ces extensions, les agents utilisateurs conformes doivent être capable d'interpréter la valeur de l'attribut media comme suit :
Note. Les feuilles de style peuvent contenir des variations en fonction des médias (par exemple, la construction CSS @media). Dans de tels cas, il convient peut-être d'utiliser "media=all". |
||||||||||||||||||||||||||||||||
| MultiLength | La valeur peut être de type Length ou une longueur relative. Une longueur relative est de la forme "i*", où i est un entier. Lors de la répartition de l'espace entre les éléments en concurrence pour cet espace, les agents utilisateurs allouent d'abord les longueurs en pixels et en pourcentage, puis divisent l'espace disponible restant entre les longueurs relatives. Chaque longueur relative reçoit une portion de l'espace disponible qui est proportionnelle à l'entier qui précède le caractère "*". La valeur "*" équivaut à "1*". Donc, si 60 pixels d'espace sont disponibles après que l'agent utilisateur a alloué l'espace en pixels et en pourcentage, et que les longueurs relatives concurrentes sont "1*", "2*" et "3*", la longueur 1* recevra 10 pixels, la longueur 2* recevra 20 pixels et la longueur 3* recevra 30 pixels. | ||||||||||||||||||||||||||||||||
| MultiLengths | Une liste d'éléments de type MultiLength, séparés par des virgules. | ||||||||||||||||||||||||||||||||
| Number | Un ou plusieurs chiffres. | ||||||||||||||||||||||||||||||||
| Pixels | La valeur est un entier qui représente le nombre de pixels du canevas (écran, feuille). Ainsi la valeur "50" signifie cinquante pixels. Pour une information normative à propos de la définition d'un pixel, veuillez consulter [CSS2]. | ||||||||||||||||||||||||||||||||
| QName | Un nom qualifié d'un espace de noms [XMLNS]. Cf. QName pour une définition formelle. | ||||||||||||||||||||||||||||||||
| QNames | Une liste de types QName, séparés par des espaces, comme défini ci-dessus. | ||||||||||||||||||||||||||||||||
| Script |
Les données de script peuvent être le contenu de l'élément La sensibilité à la casse (case-sensitivity) des données de script dépendent du langage de script. Veuillez noter que les données de script qui sont le contenu de l'élément ne peuvent pas contenir de références de caractère, au contraire des données qui constituent la valeur d'un attribut. |
||||||||||||||||||||||||||||||||
| Shape | La forme d'une région. | ||||||||||||||||||||||||||||||||
| Text | Des données textuelles arbitraires, probablement destinées à une lecture humaine. | ||||||||||||||||||||||||||||||||
| URI | Un appel d'adresse URI (URI reference), comme défini par le type anyURI
dans XMLSCHEMA. |
||||||||||||||||||||||||||||||||
| URIs | Une liste d'adresses URI, séparées par des espaces, comme défini ci-dessus. |
Cette section est informative.
Cette section définit un module abstrait en exemple d'utilisation des règles de syntaxe décrites ci-dessus. Comme cet exemple cherche à utiliser l'ensemble des divers éléments syntaxiques définis, il est assez compliqué. Les définitions de modules typiques seraient beaucoup plus simples. Enfin, notez que ce module référence la collection d'attributs Common. C'est une collection définie dans la spécification XHTML Modularization, qui comprend tous les attributs de base utiles à la plupart des éléments.
Le module de ski XHTML définit le balisage employé pour décrire les aspects d'un hébergement de ski. Les éléments et attributs définis dans ce module sont :
| Élements | Attributs | Modèle de contenu minimal |
|---|---|---|
| resort | Common, href (CDATA) | description, Aspen+ |
| lodge | Common | description, (Aspen - lift)+ |
| lift | Common, href | description? |
| chalet | Common, href | description? |
| room | Common, href | description? |
| lobby | Common, href | description? |
| fireplace | Common, href | description? |
| description | Common | PCDATA* |
Ce module définit également le jeu de contenu Aspen qui a pour modèle de contenu minimal lodge | lift | chalet | room | lobby | fireplace.
[Note du traducteur]
Aspen est une station de sports d'hiver aux États-Unis.
Les noms des éléments traduits éclaireront peut-être mieux l'exemple :
resort : station (de sports d'hiver)
lodge : bâtiment central (de la station)
lift : remontées mécaniques
chalet : chalet
room : chambre
lobby : salon
fireplace : cheminée
[Fin de la note]