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 :
% nsgmls -s -m /usr/sgml/html/catalog <test.html
L'option -s supprime la sortie de l'analyseur (voyez ci-dessous).
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 :
______________________________________________________________________ <!doctype html public "-//IETF//DTD HTML 2.0//EN"> <html> <head> <title>Document HTML simple.</title> </head> <body> <h1>Document de test</h1> <p>Ceci est un document de test.</p> </body> </html> ______________________________________________________________________
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
% nsgmls -m /usr/sgml/html/catalog <test.html >test.out
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 :
% nsgmls -s -m /usr/sgml/html/catalog -f test.err <test.html
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.