Les doctypes
Vous vous souvenez sûrement des doctypes en XHTML, cette ligne contenant l'adresse d'un fichier .dtd qu'il faut mettre au début de votre page. Vous vous rappelerez sans doute que je vous avais dit qu'il y avait moyen de créer son propre doctype mais je ne vous ai pas expliqué comment procéder. Nous allons maintenant voir comment faire. Vous êtes prêts??? On y va!!

Tout d'abord, un petit rappel: DTD signifie Document Type Declaration ou bien Document Type Definition. Le doctype définit les différentes règles que doit suivre la page pour pouvoir être considérée comme valide.

Le DTD interne



Commençons tout de suite fort! Voici la syntaxe d'un doctype:

<!DOCTYPE racine [
elements
]>

Là, vous avez tout de suite compris que dans les doctypes du XHTML, le mot "html" après "DOCTYPE" signifie que la balise racine du document est <html> (si si, le HTML a aussi une balise racine)

Nous allons tout de suite nous lancer dans un petit doctype interne.
CodeExplication
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?> standalone="yes" signifie que le fichier est indépendant car le DTD est interne.
<!DOCTYPE site [ Définition du doctype et de la balise racine (<site>)
<!ELEMENT site (page1,page2)> La racine (<site>) contiendra deux sous-éléments (<page1> et <page2>)
<!ELEMENT page1 (#PCDATA)> Indique que l'élément page1 contiendra des données en chiffres ou en lettres.
<!ELEMENT page2 (#PCDATA)> L'élément page2 contiendra lui aussi des données
]> Fin du doctype
<site> Ouverture de la balise racine du document XML
<page1>HTML</page1> On remplit l'élément page1
<page2>PHP</page2> On remplit l'élément page2
</site> On ferme la racine du document XML
Voilà, il ne tient qu'à vous de rajouter une feuille de style si vous voulez faire de cette page un chef d'oeuvre de beauté!

Ce n'est pas tout pour les doctypes. Imaginez que vous vouliez mettre des attributs à une balise (comme la balise d'image par exemple). Voici comment on codera les attributs d'une balise:
NOM   TYPE   NECESSITE
NOM est le nom de l'attribut (par exemple src pour la balise <img>), TYPE est le type de données que contiendra l'attribut. Ces différents types sont:
#PCDATAdonnées(chiffres ou lettres)
%Text;texte
%Lenght;valeur (chiffres)
%URI;lien hypertexte

NECESSITE indique si l'attribut est obligatoire ou non; il n'y a donc que deux possibilités:
#REQUIRED   obligatoire
#IMPLIED   accessoire

Pour votre information, voici un extrait du doctype transitional pour la balise IMG:
<!ELEMENT img EMPTY>
<!ATTLIST img
%attrs;
src%URI;#REQUIRED
alt%Text;#REQUIRED
nameNMTOKEN#IMPLIED
height%Length;#IMPLIED
width%Length;#IMPLIED
align%ImgAlign;#IMPLIED
border%Length;#IMPLIED
hspace%Pixels;#IMPLIED
vspace%Pixels;#IMPLIED
>

Le DTD externe.



Plutôt que de mettre le DTD à l'intérieur du document, (ce qui peut faire assez long), on peut le mettre dans un fichier externe. Un DTD externe portera évidemment l'extention ".dtd".
De plus, le DTD externe ne comportera pas la balise <!DOCTYPE> mais commencera tout de suite par la balise <!ELEMENT> Dans le fichier XML, le doctype sera appelé comme ceci : <!DOCTYPE racine SYSTEM="fichier.dtd">

: n'oubliez pas de changer l'attribut standalone en "no" car le fichier n'est plus autonome.

Voici un exemple de document XML avec un doctype externe:

Page XML
<?xml version="1.0" standalone="no"?>
<!DOCTYPE site SYSTEM="doctype.dtd">
<site>
<page1>HTML</page1>
<page2>Javascript</page2>
</site>
Fichier "doctype.dtd"
<!ELEMENT site (page1, page2)>
<!ELEMENT page1 (# PCDATA)>
<!ELEMENT page2 (# PCDATA)>

Voilà, vos pages XML seront désormais valides.

Mais où trouver un validateur XML?
Vous pouvez aller voir ICI pour un validateur en français. Sinon, vous pouvez aller voir sur le site du W3C, il y a un validateur XML. Seul ennui, il est seulement en anglais.

back   next

Creative Commons License
Sauf mention contraire, le contenu de cette page est sous licence Creative Commons
Page générée en 0.3072 secondes.
Retour en haut de la page
Imprimer cette page