
                             HTML Validation HOWTO

Keith M. Corbett <kmc@specialform.com>

   v0.2, 29 Octobre 1995 Traduction franaise: Thierry Bzecourt, Avril
   1999. ( 14 Octobre 1997 : La mini-HOWTO Linux HTML Validation n'est
   plus maintenue par son auteur. Si vous souhaitez vous en occuper, en
   franais ou en anglais, merci de contacter <gregh@sunsite.unc.edu> )
     _________________________________________________________________

   _Cette documentation a pour objet d'expliquer l'utilisation du
   programme nsgmls afin de vrifier qu'un document HTML est conforme 
   la dfinition de type de document (ou "DTD") HTML 2.0. Parmi les
   dfinitions de HTML  partir de SGML, ce DTD est la plus frquemment
   adopte. Il dfinit ainsi un sous-ensemble du balisage HTML
   correspondant  la pratique courante, ayant les meilleures chances de
   portabilit sur un nombre important d'agents utilisateurs de HTML (ou
   "navigateurs"). _
     _________________________________________________________________

1. Introduction

   Ceci est un guide d'utilisation de l'analyseur nsgmls pour valider et
   traiter des documents HTML.

1.1 Cots et bnfices

   Vous enrichirez vos documents HTML en utilisant toutes les capacits
   de SGML. Mais la validation de vos documents par rfrence au DTD HTML
   a un certain nombre d'avantages et d'inconvnients, avant tout parce
   que vous avez affaire  un dialecte de HTML plus restreint que celui
   qui est utilis actuellement. Les rgles "officielles" spcifiant la
   structure d'un document en HTML et les rgles concernant le balisage
   des donnes 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 rduit  un ensemble normalis de balises.

   Il n'existe pas de DTD couramment accept qui reflte 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 communment utiliss
   sur le Web autour de juin 1994. Divers efforts visant  dfinir un DTD
   HTML+ ou HTML 3.0 se trouvent plus ou moins dans une impasse. Et aucun
   des DTD en circulation ne reconnatra l'ensemble des balises rendues
   populaires par des diteurs de navigateurs comme Netscape et
   Microsoft.

1.2 Pour dbuter

   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 dveloppement 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. Grce  quelques personnes qui s'y sont consacres,
   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
   bibliothques) 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.

2. Les Outils

2.1 "HTML Check Toolkit"

   Si vous voulez un logiciel s'installant automatiquement et qui soit
   bien intgr, rcuprez HTML Check Toolkit  l'addresse
   http://www.halsoft.com/html-tk/index.html.

   Le seul inconvnient du logiciel HalSoft est qu'il utilise le vieil
   analyseur sgmls, qui produit des messages d'erreur parfois (encore)
   plus difficiles  comprendre que ceux de nsgmls.

   J'ai utilis nsgmls sur Linux et Windows (3.x et NT) ; il marche en
   principe sur de nombreuses autres plateformes.

2.2 L'analyseur nsgmls

   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 considr comme le
   programme de rfrence).

   Pour plus d'informations sur sp, voyez l'URL
   http://www.jclark.com/sp.html.

   Et vous pouvez le tlcharger directement depuis
   ftp://ftp.jclark.com/pub/sp/.

   Vouz pouvez peut-tre aussi rcuprer des fichiers excutables pour
   votre plateforme. Ou bien tlcharger le code source, et dans ce cas
   suivez les instructions du fichier README pour lancer make.

   Il serait utile de crer un rpertoire public au sommet de la
   hirarchie, pour y mettre les fichiers relatifs  SGML. Par exemple,
   sur mon PC Linux, j'ai plusieurs rpertoires pour SGML, dont :

     * /usr/sgml/bin
     * /usr/sgml/html
     * /usr/sgml/sgmls
     * /usr/sgml/sp

2.3 Tlcharger les spcifications de HTML

   Le projet de norme HTML 2.0 contient le fichier de dfinitions SGML
   dont vous aurez besoin pour utiliser l'analyseur, c'est--dire le DTD
   (Document Type Definition), la dclaration SGML, et le catalogue
   d'entit. Vous pouvez obtenir le texte public de HTML 2.0  l'adresse

   http://www.w3.org/hypertext/WWW/MarkUp/html-spec/

   Tlchargez et installez les fichiers suivants :

     * DTD : html*.dtd
     * Dclaration SGML : html.decl
     * Catalogue d'entits : catalog

   Vous pouvez ajouter deux entres au catalogue des entits HTML pour
   faciliter l'utilisation de nsgmls :

   ______________________________________________________________________
           -- catalog: SGML Open style entity catalog for HTML --
           -- $Id: HTML-Validation.sgml,v 1.1.1.1 2003/01/03 02:40:54 traduc Ex
p $ --
    :
    :
           -- Ajouts pour faciliter l'utilisation de nsgmls --
   SGMLDECL        "html.decl"
   DOCTYPE HTML    "html.dtd"
   ______________________________________________________________________

   Ou bien vous pouvez crer un second catalogue contenant ces entres.
   Vous passerez ensuite ce catalogue  nsgmls comme argument, avec
   l'option -m.

3. Analyser un document HTML

   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).

3.1 Entre de l'analyseur

   Votre document doit tre conforme  la norme SGML, ce qui signifie,
   entre autres, que le type de document doit tre dclar au dbut de
   l'entre (vous pouvez contourner cette rgle en spcifiant cette
   information sur la ligne de commande de nsgmls).

   Voici un document HTML simple, qui peut tre analys sans erreur en
   suivant les rgles que j'ai dcrites :

   ______________________________________________________________________
   <!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>
   ______________________________________________________________________

3.2 Sortie de l'analyseur

   La sortie standard du programme nsgmls est une forme concentre de
   l'entre SGML que les systmes 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 complte, ne spcifiez pas l'option
   -s et redirigez la sortie vers un fichier

       % nsgmls -m /usr/sgml/html/catalog <test.html >test.out

3.3 Messages de l'analyseur

   Les messages d'erreur et d'avertissement de nsgmls peuvent tre trs
   difficiles  dchiffrer. Et vous trouverez un grand nombre d'erreurs
   rsultant 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

3.4 Code de retour

   L'analyseur indique si le document est conforme au DTD HTML de deux
   manires :

   Code de retour - l'analyseur renvoit un code de sortie de 0 en cas de
   succs, diffrent de 0 sinon.

   Sortie - si le document est conforme au DTD, la dernire ligne de la
   sortie standard contient un caractre C unique.

4. Liens

   "HTML Check Toolkit" de HalSoft se trouve  l'adresse
   http://www.halsoft.com/html-tk/index.html.

   La page de James Clark sur sp se trouve  l'adresse
   http://www.jclark.com/sp.html.

   La page du W3C sur la spcification de HTML se trouve  l'adresse
   http://www.w3.org/hypertext/WWW/MarkUp/html-spec/.
