Ceci est un guide d'utilisation de l'analyseur nsgmls pour valider et
traiter des documents HTML.
Vous enrichirez vos documents HTML en utilisant toutes les capacités
de SGML. Mais la validation de vos documents par référence au DTD HTML a
un certain nombre d'avantages et d'inconvénients, avant tout parce que
vous avez affaire à un dialecte de HTML plus restreint que celui qui
est utilisé actuellement. Les règles "officielles" spécifiant la
structure d'un document en HTML et les règles concernant le balisage
des données en SGML sont plus strictes que ne l'est la pratique courante
sur le Web.
La premier point, et le plus important, est d'avoir conscience que le
codage HTML correct se réduit à un ensemble normalisé de balises.
Il n'existe pas de DTD couramment accepté qui reflète exactement le
"HTML des navigateurs", tel qu'il est compris par de nombreux
programmes clients de navigation. Pour l'essentiel, le DTD HTML 2.0
contient les balises et les attributs les plus communément utilisés
sur le Web autour de juin 1994. Divers efforts visant à définir un DTD
HTML+ ou HTML 3.0 se trouvent plus ou moins dans une impasse. Et aucun
des DTD en circulation ne reconnaîtra l'ensemble des balises rendues
populaires par des éditeurs de navigateurs comme Netscape et
Microsoft.
Contrairement à ce que beaucoup de gens croient, il est possible de
travailler en SGML sans y consacrer trop de temps ou d'argent. On peut
mettre en place un environnement de développement solide en utilisant
exclusivement des logiciels disponibles gratuitement sur un grand
nombre de plateformes, y compris Linux, DOS et la plupart des stations
de travail Unix. Grâce à quelques personnes qui s'y sont consacrées,
tous les outils dont vous avez besoin pour travailler en SGML sont
disponibles publiquement sur Internet.
La mise en place de votre environnement (l'analyseur et les
bibliothèques) prend un peu de temps, mais pas autant qu'on pourrait
le croire.
Au cas où vous éprouveriez l'envie de lire un texte d'introduction à
SGML (en anglais) : "SGML: An Author's Guide to the Standard
Generalized Markup Language" par Martin Bryan, ou "Practical SGML" par
Eric van Herwijnen.
Si vous voulez un logiciel s'installant automatiquement et qui soit
bien intégré, récupérez HTML Check Toolkit à l'addresse
James Clark a mis au point sun ensemble logiciel nommé sp,
qui contient un analyseur et un validateur SGML, nsgmls (c'est le
successeur de l'analyseur sgmls, longtemps considéré comme le
programme de référence).
Pour plus d'informations sur sp, voyez l'URL
Le projet de norme HTML 2.0 contient le fichier de définitions SGML
dont vous aurez besoin pour utiliser l'analyseur, c'est-à-dire le DTD
(Document Type Definition), la déclaration SGML, et le catalogue
d'entité. Vous pouvez obtenir le texte public de HTML 2.0 à l'adresse
Voici une "recette" pour valider un document unique. Lancez simplement
le programme nsgmls en lui passant le chemin du (ou des) fichier(s) du
catalogue HTML, ainsi que le document :
Votre document doit être conforme à la norme SGML, ce qui signifie, entre
autres, que le type de document doit être déclaré au début de l'entrée
(vous pouvez contourner cette règle en spécifiant cette information
sur la ligne de commande de nsgmls).
Voici un document HTML simple, qui peut être analysé sans erreur en
suivant les règles que j'ai décrites :
La sortie standard du programme nsgmls est une forme concentrée de
l'entrée SGML que les systèmes de traitement peuvent utiliser comme un
analyseur lexical afin de parcourir la structure du document. Pour les
besoins de la validation, vous pouvez oublier la sortie standard et ne
vous occuper que de l'erreur standard.
Si vous souhaitez avoir la sortie complète, ne spécifiez pas l'option
-s et redirigez la sortie vers un fichier
Les messages d'erreur et d'avertissement de nsgmls peuvent être très
difficiles à déchiffrer. Et vous trouverez un grand nombre d'erreurs
résultant d'un balisage non-conforme.
Pour rediriger les messages vers un fichier, utilisez l'option -f :
L'analyseur indique si le document est conforme au DTD HTML de deux
manières :
Code de retour - l'analyseur renvoit un code de sortie de 0 en cas de
succès, différent de 0 sinon.
Sortie - si le document est conforme au DTD, la dernière ligne de la
sortie standard contient un caractère C unique.
"HTML Check Toolkit" de HalSoft se trouve à l'adresse