documents

Les définitions de type de document personnalisées

La définition de type de document (DTD)

C'est un document générique qui décrit le contenu d'un autre document (ici HTML ou XHTML). En d'autres termes, il définit les éléments et attributs qui constituent le balisage à interpréter par le navigateur pour l'affichage et la mise en pages du document, et les relations entre ces éléments.

La validation des documents

Qu'est-ce que la validation ? La validation consiste à vérifier la conformité du document avec sa description (DTD). Les raisons de valider un document sont les suivantes :

Certaines organisations fournissent des outils de validation des documents HTML, XHTML, des feuilles de style (CSS) ou autres. Deux sortent du lot en raison de l'importance et/ou de la qualité de leurs prestations en matière de validation.

Le premier est le World Wide Web Consortium (W3C)[1], dépositaire en titre des normes (recommandations) utilisées sur le Web. Tous les services de validation s'y réfèrent. Le W3C propose plusieurs outils de validation en ligne relatifs aux diverses normes publiées. L'outil qui nous intéresse est le suivant :

Le deuxième est le Web Design Group (WDG)[2] dont le validateur permet, en plus de prestations similaires à celles du W3C, de valider un document avec une définition DTD personnalisée. L'outil en question :

Pourquoi utiliser une définition DTD personnalisée ?

Quelques navigateurs utilisent encore des balises et attributs non standards et on est parfois obligé de les utiliser pour compatibilité avec eux. Voici deux exemples :

Trop de pages ne passent pas la validation essentiellement parce que les validateurs les comparent seulement aux définitions DTD standards. Ils achoppent systématiquement sur les pages HTML contenant des éléments ou attributs étrangers à ces définitions. Les résultats de validation peuvent aussi intimider voire décourager les auteurs. Pour faciliter la correction du code et amener à de meilleures pratiques de codage, il faut parfois faire preuve de pragmatisme.

Comment personnaliser une définition DTD ?

Mise au point

Juin 2007 : La situation au moment de la publication de cette page en 2001 n'est plus celle d'aujourd'hui. On pouvait alors justifier de recourir à une personnalisation simplement du fait de la présence des navigateurs anciens. Mais ils ont été inexorablement poussés aux oubliettes par les nouveaux (censés mettre en œuvre les dernières normes).

D'autres solutions[3] permettent maintenant de valider les documents contenant du QuickTime ou du Flash sans altérer les définitions DTD standards du W3C. À noter également que l'emploi d'une définition personnalisée peut influer sur l'interprétation des pages par les navigateurs[4].

Cette option n'est donc plus à recommander en ce qui concerne les documents HTML. Quoiqu'il en soit, le mode d'emploi suivant reste toujours valable.

En modifiant les définitions DTD standards du W3C. Pour la recommandation HTML 4.01[5], en partant des documents loose.dtd et/ou frameset.dtd, et pour la recommandation XHTML 1.0[6], depuis les documents xhtml1-transitional.dtd ou xhtml1-frameset.dtd.

Par exemple, dans HTML 4.01, voici comment modifier :

Et de même, dans XHTML 1.0 :

La déclaration d'une définition DTD personnalisée

La définition DTD est associée au document au moyen de la déclaration de type de document DOCTYPE placée en tête du document HTML ou XHTML.

Par exemple, le document HTML suivant avec une définition DTD standard :

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
        "http://www.w3.org/TR/html4/loose.dtd">

À supposer que le document soit hébergé sur le site example.net, la définition DTD personnalisée sera associée ainsi :

<!DOCTYPE HTML SYSTEM "http://example.net/loose_custom.dtd">

On remplace donc l'identificateur PUBLIC de la définition standard par l'identificateur SYSTEM puis on indique l'emplacement (adresse URL) de la définition DTD modifiée que l'on aura placée sur le site.

(Le principe est le même pour un document XHTML à la différence qu'il faudra écrire html tout en minuscules car XHTML est sensible à la casse.)

Puis deux cas se présentent :

Le validateur du World Design Group

Rareté dans le monde des validateurs, le validateur du WDG est capable de traiter un document HTML ou XHTML avec une définition DTD personnalisée.

Cas particulier du XML

Si on veut valider un document XHTML avec une définition DTD personnalisée, une limitation du validateur impose de préciser explicitement le type XML du document. Il y a deux façons de procéder :

Cette option est disponible uniquement dans le mode de validation par adresse URL.

Exemples de validation

Voici deux exemples de validation avec des définitions DTD personnalisées : l'un avec des documents HTML et l'autre avec des documents XHTML. Utilisant des définitions DTD personnalisées différentes, ces deux versions sont fondées sur un même gabarit : un jeu d'encadrement (frameset) définit un cadre (frame) supérieur pour la navigation et un cadre inférieur pour l'affichage principal.

<frameset rows="40%,*" border="0" frameborder="0" framespacing="0">
    <frame name="navigation" src="navigation.php"
        title="Cadre de la navigation"
        marginheight="0" marginwidth="0" frameborder="0">
    <frame name="principal" src="principal.php"
        title="Cadre de l'affichage principal"
        marginheight="0" marginwidth="0" frameborder="0">
</frameset>

Le gabarit des exemples (frameset.php)

La page de définition du jeu d'encadrement est associée à une définition DTD personnalisée (les attributs non standards apparaissent en gras dans le code ci-dessus) ; le cadre navigation appelle la page navigation.php associée à une définition DTD standard du W3C ; le cadre principal appelle la page principal.php qui contient une animation QuickTime et qui est associée à une définition DTD personnalisée.

À télécharger

Les définitions DTD personnalisées données en exemples sont disponibles dans les formats comprimés suivants. Après décompression, ouvrez les fichiers avec un éditeur de texte et suivez les indications incluses pour adapter ces définitions DTD à vos besoins :

Références

  1. Le site du W3C
  2. Le site du WDG
  3. Un article intitulé Flash Satay publié sur alistapart.com indiquant comment inclure un film Flash uniquement avec l'élément normalisé object. Cf. également un article plus complet sur ce sujet publié sur Netscape Devedge.

    Par ailleurs, suite à l'affaire du brevet Eolas en 2003, d'après le nom de la société détentrice, les éditeurs soucieux de ne pas contrevenir au brevet recommandent tous des solutions dynamiques à base de scripts. Par exemple, cf. les instructions fournies par les sociétés Apple®, Adobe® et Real Networks® pour incorporer, respectivement, les films QuickTime™, Flash™ et RealVideo™

  4. Un article intitulé Quirks mode and strict mode publié sur quirksmode.org
  5. La recommandation HTML 4.01 et ses définitions DTD loose.dtd et frameset.dtd
  6. La recommandation XHTML 1.0 et ses définitions DTD xhtml1-transitional.dtd et xhtml1-frameset.dtd
  7. Les pages du WDG sur les définitions DTD personnalisées et la différence entre un validateur et un vérificateur
  8. Tout savoir sur la balise embed (Netscape®)
  9. Comment inclure une animation QuickTime™ (Apple®)
  10. Comment inclure une animation Flash™ (Adobe®)
  11. L'option cachée du validateur du WDG pour les documents XHTML (XML) avec définition DTD personnalisée.
© 1999-2008 yoyodesign.org — Certains droits réservés