  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> ) HTML Validation HOWTO
  Keith M. Corbett <kmc@specialform.com>
  v0.2, 29 Octobre 1995

  Cette documentation a pour objet d'expliquer l'utilisation du pro
  gramme nsgmls afin de vrifier qu'un document HTML est conforme  la
  dfinition de type de document (ou "DTD") HTML 2.0. Parmi les dfini
  tions de HTML  partir de SGML, ce DTD est la plus frquemment
  adopte. Il dfinit ainsi un sous-ensemble du balisage HTML correspon
  dant  la pratique courante, ayant les meilleures chances de porta
  bilit sur un nombre important d'agents utilisateurs de HTML (ou "nav
  igateurs").
  ______________________________________________________________________

  Table des matires


  1. Introduction

     1.1 Cots et bnfices
     1.2 Pour dbuter

  2. Les Outils

     2.1 "HTML Check Toolkit"
     2.2 L'analyseur nsgmls
     2.3 Tlcharger les spcifications de HTML

  3. Analyser un document HTML

     3.1 Entre de l'analyseur
     3.2 Sortie de l'analyseur
     3.3 Messages de l'analyseur
     3.4 Code de retour

  4. Liens



  ______________________________________________________________________

  11..  IInnttrroodduuccttiioonn

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


  11..11..  CCoottss eett bbnnffiicceess

  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1..22..  PPoouurr ddbbuutteerr

  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2..  LLeess OOuuttiillss


  22..11..  ""HHTTMMLL CChheecckk TToooollkkiitt""

  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..22..  LL''aannaallyysseeuurr nnssggmmllss

  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2..33..  TTllcchhaarrggeerr lleess ssppcciiffiiccaattiioonnss ddee HHTTMMLL

  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: catalog,v 1.2 1994/11/30 23:45:18 connolly Exp $ --
      :
      :
             -- 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3..  AAnnaallyysseerr uunn ddooccuummeenntt HHTTMMLL

  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3..11..  EEnnttrree ddee ll''aannaallyysseeuurr

  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3..22..  SSoorrttiiee ddee ll''aannaallyysseeuurr

  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..33..  MMeessssaaggeess ddee ll''aannaallyysseeuurr

  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3..44..  CCooddee ddee rreettoouurr

  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4..  LLiieennss

  "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/>.




















































