Sommaire
Cette section de la spécification décrit les types de données fondamentaux qui peuvent appara‰tre comme un contenu d'élément ou une valeur d'attribut.
Consultez le manuel SGML, pour obtenir une information préliminaire sur la lecture d'une DTD HTML.
Chaque définition d'attribut inclut l'information à propos de la sensibilité à la casse de ses valeurs. L'information de casse est présenté avec les clés suivantes :
Si une valeur d'attribut est une liste, les clés s'appliquent à toutes les valeurs de la liste, à moins d'un indication contraire.
La déclaration de document type spécifie la syntaxe du contenu de l'élément HTML et des valeurs d'attribut en utilisant les jetons SGML suivants (e.g., PCDATA, CDATA, NAME, ID, etc.). L'information à propos de la signification sur ces jetons et comment les clients devraient les interpréter peut être trouvé dans [GOLD90].
Voici un résumé des informations clés :
Les clients peuvent ignorer les espaces majeurs et les espaces restants dans les valeurs d'attributs CDATA (e.g., " myval " peut être interprêté comme "myval"). Les auteurs ne devraient pas déclarer de valeurs d'attribut avec des espaces majeurs et des espaces restants.
Pour quelques-uns des attributs HTML 4.0 avec des valeurs d'attributs CDATA, la spécification impose plus de contraintes sur l'ensemble des valeurs autorisées qui ne peut pas être exprimé dans une DTD.
Bien que les éléments STYLE et SCRIPT utilisent CDATA pour leur modèle de données, pour ces éléments, CDATA doit être considéré différement par les clients. Descripteurs et entités doivent être traités comme du texte brut et passé à l'application tel quel. La première occurence d'une séquence de caractère "</" (délimiteur ouvert de fin de balise) est traité comme terminant la fin du contenu d'un élément. Dans les documents valides, ce devrait être la balise de fin de l'élément.
Un nombre d'attributs (%Text; dans la DTD) signifie que le texte est "lisible par l'humain". Pour une introduction à propos des attributs, consultez le manuel à propos des attributs.
Cette spécification utilise le terme URL pour le terme générique d'identificateurs de ressource appelés "URI" dans [RFC1630], incluant le terme "URL" comme défini dans [RFC1738] et [RFC1808], et le terme "URN" comme défini dans [RFC2141].
Les URLs sont représentés dans la DTD par l'entité paramètre %URL.
Les URLs en général sont sensibles à la casse. Il existe des URLs, ou des parties d'URLs, où la casse importe peu (e.g., les noms de machines), mais déterminer ceci peut ne pas être facile. Les utilisateurs devraient toujours considérer que les URLs sont sensibles à la casse.
Les URLs relatifs sont ramenées à des URLs complets utilisant un URL de base. [RFC1808] définit l'algorithme normatif de ce procédé. Pour obtenir des informations à propos des URLs de base, consultez la section sur les URLs de base dans le chapitre sur les liens.
Consultez l'appendice, pour obtenir de l'information à propos de l'écriture des caractères non-ASCII dans les URLs.
La valeur d'attribut de type "color" (%Color) se réferre aux définitions des couleurs comme spécifié dans [SRGB]. Une valeur de couleur peut être un nombre hexadécimal (précédé d'un dièse) ou d'un des 16 noms de couleurs suivants. Les noms des couleurs sont insensibles à la casse.
Black = "#000000" | Green = "#008000" | ||
Silver = "#C0C0C0" | Lime = "#00FF00" | ||
Gray = "#808080" | Olive = "#808000" | ||
White = "#FFFFFF" | Yellow = "#FFFF00" | ||
Maroon = "#800000" | Navy = "#000080" | ||
Red = "#FF0000" | Blue = "#0000FF" | ||
Purple = "#800080" | Teal = "#008080" | ||
Fuchsia = "#FF00FF" | Aqua = "#00FFFF" |
Donc, les valeurs de couleur "#800080" et "Purple" se réferre toutes deux à la couleur violette.
Bien que les couleurs peuvent être un artifice signifcatif d'ajout d'informations à un document et rendre celui-ci plus lisible, considérez les règles suivantes quand vous utilisez des couleurs dans vos documents :
HTML spécifie trois type de valeurs de longueur pour les attributs :
Les valeurs de longueur sont neutres à la casse
Note. Un type média (défini dans [RFC2045] et dans [RFC2046]) spécifie la nature d'une ressource lié. Cette spécification emploie le terme content type plutôt que type média par respect des usages courants.
Ce type est représenté dans la DTD par %ContentType.
Les types de contenus sont insensibles à la casse.
Les exemples de types de contenus comprennent "text/html", "image/png", "image/gif", "video/mpeg", "audio/basic", "text/tcl", "text/javascript", et "text/vbscript". Pour la liste actuelle des types MIME, consultez [MIMETYPES].
Note. Le type de contenu "text/css", bien que non enregistré par IANA, devrait être utiliser quand la ressource liée est une feuille de style [CSS1].
La valeur des attributs dont le type est un code de langue (%LanguageCode dans la DTD) se réferre à unn code de langue tel que spécifié par [RFC1766]. Pour obtenir des informations à propos des codes de langue en HTML, consultez la section sur les codes de langue. Les espaces ne sont pas permis au sein du code de langue.
Les attributs "charset" (%Charset dans la DTD) se réferre à un encodage de caractère tel que décrit dans la section sur l'encodage de caractère. Les valeurs doivent être des cha‰nes de caractères (e.g., "euc-jp") tiré du registre IANA (voir [CHARSETS] pour une liste complète). Les noms pour l'encodage des caractères sont insensibles à la casse.
Les clients doivent suivre les étapes spécifié dans cette section afin de choisir l'encodage des caractères afin de déterminer l'encodage des caractères d'une ressource externe.
Parfois les attributs appelle un caractère unique de la table des caractères du document. Ces attributs prennent le type %Character dans la DTD.
Les caractères uniques peuvent être spécifiés avec les caractères références (e.g., "&").
[ISO8601] permet beaucoup de variationbs dans la représentation des dates et des heures. La spécification actuelle utilise l'un de ces formats décrits dans le profil [DATETIME] pour la définition des cha‰nes légales de date/heure (%Datetime dans la DTD).
Le format est :
YYYY-MM-DDThh:mm:ssTZDwhere:
YYYY = année sur 4 chiffres MM = mois sur 2 chiffres (01=Janvier, etc.) DD = jour du mois sur 2 chiffres (01 à 31) hh = heure sur 2 chiffres (00 à 23) (am/pm non autorisé) mm = minute sur 2 chiffres (00 à 59) ss = seconde sur 2 chiffres (00 à 59) TZD = indicateur de fuseau horaire (Time Zone Designator)
L'indicateur de fuseau horaire est un de ceux-ci :
Les composantes exposés doivent être présente exactement avec cette écriture et ponctuation. Notez que le "T" apparait littéralement dans la cha‰ne (il doit être en majuscule), afin d"indiquer le début de l'élément temps, comme spécifié dans [ISO8601]
Si une application de génération ne connait pas l'heure au niveau des secondes, elle peut utiliser la valeur "00" pour les secondes (et minutes et heures si nécessaires).
Note. [DATETIME] ne résoud pas les secondes de rattrapage.
Les auteurs peuvent utiliser les types de liens suivants reconnus, listés ici avec leur interprétation conventionnelle. Ceux ci sont définis comme étant non sensible à la casse, i.e., "Alternate" à la même signification que "alternate". Dans la DTD, %LinkTypes se réferre à une liste de types de liens séparés par des espaces. Les espaces ne sont pas permis au sein des types de lien.
Les clients, les moteurs de recherche, etc. peuvent traiter les types de liens dans une grande variété d'interprétation. Par exemple, les clients peuvent fournir un accès à des documents liés à travers une barre de navigation.
Les auteurs peuvent souhaiter définir des types de liens additionnels non définis par la spécification. S'ils le font, ils devraient utiliser un profil pour annoncer les conventions utilisées pour définir les types de liens. Voir l'attribut profile de l'élément HEAD pour plus de détails.
A propos des discussions sur les types de liens, consulter la section sur les liens dans les documents HTML.
Voici la liste des descripteurs de media reconnu (%MediaDesc dans la DTD).
Les versions futures de HTML peuvent introduire de nouvelles valeurs et peuvent permettrent des valeurs paramétrées. Pour faciliter l'introduction de ces extensions, les clients se conformant à cette spécification doivent être capable de traiter la valeur d'attribut media comme suit :
media="screen, 3d-glasses, print and resolution > 90dpi"
est compris de cette manière :
"screen" "3d-glasses" "print and resolution > 90dpi"
"screen" "3d-glasses" "print"
Note. Les feuilles de styles peuvent contenir en leurs seins des variations dépendantes du média (e.g., la construction du @media CSS). Dans certains casn il peut être approprié d'utiliser "media=all".
Le contenu de l'élément SCRIPT et la valeur des attributs événements intrinsèques sont des données script (indiqué par le %Script; dans la DTD). Ces données ne doivent pas être évaluées par le client comme descripteur HTML. Le client doit passer les données telle quelles à interprêteur de script. La sensibilité à la casse est dépendant du langage de scripting.
Les lecteurs HTML doivent être capable de reconna‰tre les données script dès la balise de début et se terminer dès que les délimiteurs ETAGO ("</") sont suivis un caractère ([a-zA-Z]). Les données scripts ne se termine pas nécessairement avec la balise de fin </SCRIPT> mais sont terminées par "</" suivi par un caractère.
Par conséquent, tout descripteur HTML qui est envoyé par le moteur de scripting (qui fait ce qu'il veut avec le descripteur) doit être "escaped" afin de ne pas pertuber le lecteur HTML. Les concepteurs de chauqe langage de scripting devraient recommander un support spécifique en fonction du langage afin de résoudre ce problème.
EXEMPLE ILLEGAL :
Le code suivant est invalide dû à la présence des caractères
"</" présents, comme une partie de "</EM>", à l'intérieur de l'élément SCRIPT :
<SCRIPT type="text/javascript"> document.write ("<EM>Cela ne marche pas</EM>") </SCRIPT>
un lecteur conforme doit traiter les caractères "</" comme indicateur de fin des données script, ce qui clairement n'est pas ce que l'auteur a prévu.
En JavaScript, ce code peut être écrit correctement en s'assurant que la présence du délimiteur ETAGO ne soit apparente avant un caractère SGML de départ :
<SCRIPT type="text/javascript"> document.write ("<EM>Ceci marche<\/EM>") </SCRIPT>
En Tcl, On peut l'accomplir comme cela :
<SCRIPT type="text/tcl"> document write "<EM>Ceci marchera<\/EM>" </SCRIPT>
En VBScript, Le problème peut être évité par la fonction Chr() :
"<EM>Ceci marchera<" & Chr(47) & "EM>"
A l'exception des noms réservés listés ici, les noms de cible des frames (%FrameTarget; dans la DTD) doivent commencer avec un caractère alpahbétique (a-zA-Z). Les clients devraient ignorer tous les autres noms cibles.
Les noms suivants sont réservés et ont une signification particulière.