Déclaration de Type de Document ou Doctype
Par Victor Brito, le dimanche 18 mai 2008, à 17h05 - Lien permanent
Une déclaration de type de document, également et plus couramment appelée doctype, permet d'associer un document XML à une DTD, qui est un fichier contenant le schéma syntaxique auquel le document XML en question est censé obéir pour qu'il soit valide. Le doctype se reconnaît par sa syntaxe singulière.
Cette syntaxe se compose des éléments suivants, chaque élément étant séparé par une espace :
- un chevron ouvrant suivi d'un point d'exclamation et du mot
DOCTYPE(<!DOCTYPE), indiquant le début d'une déclaration de type de document (cette notation est dérivée du SGML, le méta-langage ancêtre du XML), - l'élément racine du document,
- le mot-clé
PUBLICouSYSTEM, indiquant si le chemin du fichier DTD est indiqué de façon explicite (mot-cléSYSTEM), que le fichier se trouve dans le poste local ou à une adresse distante, ou bien au moyen d'un FPI, un identifiant de la DTD (mot-cléPUBLIC), - le FPI, si le mot-clé
PUBLICest employé, - l'URL ou le chemin du fichier DTD, entre guillemets, suivi d'un chevron fermant.
Le FPI suit lui-même une syntaxe, composée des éléments suivants, dont l'ensemble est mis entre guillemets, chaque élément étant séparé par deux barres obliques (//) :
- l'identifiant du propriétaire, pouvant être précédé de
-//ou de+//, - une description publique,
- la langue,
- la version (indication facultative).
Pour plus de détails sur le FPI, on consultera la RFC 3151.
Exemple de doctype de type SYSTEM :
<!DOCTYPE élément-racine SYSTEM "URL">
Exemple de doctype de type PUBLIC :
<!DOCTYPE élément-racine PUBLIC "-//Propriétaire//Description de la DTD//Langue" "URL">
Cas d'une DTD interne
Un document XML peut fournir lui-même toutes les instructions définissant le type de document auquel il est censé obéir. Dans ce cas, la syntaxe est la suivante :
<!DOCTYPE,- l'élément racine du document,
- un crochet droit ouvrant,
- les différentes instructions de la DTD,
- un crochet droit fermant, suivi du chevron fermant.
Ce qui donne, par exemple :
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE auteur [ <!-- Ici les différentes instructions de la DTD interne --> <!ELEMENT auteur (nom,prenom)> <!ELEMENT nom (#PCDATA)> <!ELEMENT prenom (#PCDATA)> ]> <auteur> <nom>Brito</nom> <prenom>Victor</prenom> </auteur>
Utilisation du doctype
L'utilisation d'un doctype n'est pas obligatoire dans un document XML : il existe d'autres méthodes de validation d'un document XML et l'absence de doctype (ou de toute autre méthode de validation) n'empêchera pas un document XML d'être syntaxiquement valide, en ce sens qu'il est bien formé. L'intérêt de valider un document XML n'est palpable que lorsque le document XML suit un format XML précis, selon des schémas précis.
En revanche, le doctype est essentiellement utilisé en XHTML (traité en tant que XML ou non), ainsi qu'en HTML, où son utilisation est recommandée pour une interprétation correcte du document par les navigateurs.

