HTML Validation HOWTO

Keith M. Corbett <kmc@specialform.com>

v0.2, 29 Octobre 1995 Traduction fran�aise: Thierry B�zecourt, 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 fran�ais ou en anglais, merci de contacter <gregh@sunsite.unc.edu> )
Cette documentation a pour objet d'expliquer l'utilisation du programme nsgmls afin de v�rifier qu'un document HTML est conforme � la d�finition de type de document (ou "DTD") HTML 2.0. Parmi les d�finitions de HTML � partir de SGML, ce DTD est la plus fr�quemment adopt�e. Il d�finit 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 Co�ts et b�n�fices

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.

1.2 Pour d�buter

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.

2. Les Outils

2.1 "HTML Check Toolkit"

Si vous voulez un logiciel s'installant automatiquement et qui soit bien int�gr�, r�cup�rez HTML Check Toolkit � l'addresse http://www.halsoft.com/html-tk/index.html.

Le seul inconv�nient 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 consid�r� comme le programme de r�f�rence).

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

Et vous pouvez le t�l�charger directement depuis ftp://ftp.jclark.com/pub/sp/.

Vouz pouvez peut-�tre aussi r�cup�rer des fichiers ex�cutables pour votre plateforme. Ou bien t�l�charger le code source, et dans ce cas suivez les instructions du fichier README pour lancer make.

Il serait utile de cr�er un r�pertoire public au sommet de la hi�rarchie, pour y mettre les fichiers relatifs � SGML. Par exemple, sur mon PC Linux, j'ai plusieurs r�pertoires pour SGML, dont :

2.3 T�l�charger les sp�cifications de HTML

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

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

T�l�chargez et installez les fichiers suivants :

Vous pouvez ajouter deux entr�es au catalogue des entit�s 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 Exp $ --
    :
    :
           -- Ajouts pour faciliter l'utilisation de nsgmls --
   SGMLDECL        "html.decl"
   DOCTYPE HTML    "html.dtd"
   ______________________________________________________________________

Ou bien vous pouvez cr�er un second catalogue contenant ces entr�es. 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 Entr�e de l'analyseur

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

3.2 Sortie de l'analyseur

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

3.3 Messages de l'analyseur

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

3.4 Code de retour

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.

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 sp�cification de HTML se trouve � l'adresse http://www.w3.org/hypertext/WWW/MarkUp/html-spec/.