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

Traducteur : J.J.Solari dans le cadre de l'effort de la liste de discussion w3c-translators.fr@w3.org
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/1999/REC-html401-19991224


19 Les informations de référence SGML pour HTML

Sommaire

  1. La validation du document
  2. Un exemple de catalogue SGML

Les sections suivantes contiennent la définition SGML formelle de HTML 4. Cela comprend la déclaration SGML, la définition du type de document (DTD) et les références des entités de caractères, ainsi qu'un exemple de catalogue SGML.

Ces fichiers sont également disponible au format ASCII comme listés ci-dessous :

DTD par défaut :
strict.dtd
DTD transitoire :
loose.dtd
DTD de jeu d'encadrement :
frameset.dtd
Déclaration SGML :
HTML4.decl
Fichiers des définitions des entités :
HTMLspecial.ent
HTMLsymbol.ent
HTMLlat1.ent
Un exemple de catalogue :
HTML4.cat

19.1 La validation du document

Nombre d'auteurs compte sur un éventail réduit de navigateurs pour y vérifier les documents qu'ils produisent, en partant du principe que si ces navigateurs peuvent restituer leurs documents, alors c'est qu'ils sont valides. Malheureusement, c'est un moyen très inefficace de vérifier la validité d'un document, précisément parce que les navigateurs sont conçus pour s'accomoder des documents invalides, en les restituant aussi bien qu'ils le peuvent pour ne pas frustrer les utilisateurs..

Pour une meilleure validation, vous pouvez contrôler votre document auprès d'un analyseur SGML, tel que nsgmls (voir [SP]), afin de vérifier que celui-ci est conforme au DTD HTML 4. Si la déclaration de type de document pour votre document inclut un URI et que votre analyseur SGML gère ce type d'identifiant de système, celui-ci obtiendra le DTD directement. Sinon, vous pouvez utiliser l'exemple de catalogue SGML suivant. Il suppose que le DTD est enregistré avec le nom "strict.dtd" et que les entités se trouvent dans les fichiers "HTMLlat1.ent", "HTMLsymbol.ent" et "HTMLspecial.ent". En tout cas, assurez-vous que votre analyseur SGML soit capable de gérer le jeu de caractères [ISO10646]. Voir la documentation de votre outil de validation pour des précisions.

Sachez qu'une telle validation, bien qu'utile et fortement recommandée, ne garantit pas qu'un document soit entièrement conforme à la spécification HTML 4. C'est parce qu'un analyseur SGML repose seulement sur le DTD SGML donné, qui n'exprime pas tous les aspects d'un document HTML 4 valide. Spécifiquement, un analyseur SGML s'assure que la syntaxe, la structure, la liste des éléments et leurs attributs sont valides. Mais, par exemple, il ne peut pas relever les erreurs comme une valeur d'attribut width pour l'élément IMG invalide (i.e., "truc" ou "12.5"). Même si la spécification restreint la valeur de cet attribut à un « entier » représentant une longueur en pixels, le DTD le définit seulement comme étant du type CDATA, ce qui autorise en fait n'importe quelle valeur. Seul un programme spécialisé pourrait capturer la spécification de HTML 4 en entier.

Néanmoins, ce type de validation est fortement recommandé puisqu'il permet la détection d'une grande partie des erreurs qui invalident les documents.

19.2 Un exemple de catalogue SGML

Ce catalogue comprend la directive de surclassement pour assurer que le programme de traitement, tel que nsgmls, utilise les identifiants publiques de préférence aux identifiants de système. Cela signifie que les utilisateurs ne sont pas obligés de se connecter au Web pour ramener les identifiants de système basés sur un URI.

OVERRIDE YES

PUBLIC "-//W3C//DTD HTML 4.01//EN" strict.dtd
PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" loose.dtd
PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" frameset.dtd
PUBLIC "-//W3C//ENTITIES Latin1//EN//HTML" HTMLlat1.ent
PUBLIC "-//W3C//ENTITIES Special//EN//HTML" HTMLspecial.ent
PUBLIC "-//W3C//ENTITIES Symbols//EN//HTML" HTMLsymbol.ent