La validation d'un document XHTML est accordée par le processeur XHTML si le document est bien formé et s'il est conforme à la DTD associée.
Un document est dit bien formé s'il correspond parfaitement aux règles de bonne formulation.
C'est-à-dire, si le document ne comporte aucune erreur de syntaxes comme la casse des éléments et attributs, leur emboîtement, la fermeture impérative des éléments vides et non vides, l'encadrement des valeurs d'attributs par des guillemets, etc..
La conformité d'un document XHTML par rapport à une Définition de Type de Document est effective lorsqu'il n'existe, dans ce document, aucune transgression des règles définies par la DTD.
D'ailleurs, une Définition de Type de Document doit être spécifiée impérativement avant l'élément racine <html> du document XHTML par le truchement de l'instruction <!DOCTYPE>. La DTD peut être l'une des trois variantes recommandées par le World Wide Web Consortium (W3C) ou une autre DTD personnelle créée pour une utilisation spécifique.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/dtD/xhtml1-strict.dtd">
Si le document respecte l'architecture énoncée par la DTD, comme le strict respect des types de données (datatypes), des valeurs d'attributs ou d'éléments, l'utilisation pertinente des composants en fonction de leur caractère obligatoire ou optionnel ou encore de ne pas employer d'éléments ou d'attributs non définis.
L'élément racine du document doit être <html>, lequel doit posséder un espace de noms XHTML par l'intermédiaire de l'attribut xmlns.
<html xmlns="http://www.w3.org/1999/xhtml"> ...
</html>
L'élément d'entête <head> doit obligatoirement apparaître avec en son sein la balise <title>.
<head> <title>Titre</title> </head>
Un document XHTML minimal doit impérativement comporter une déclaration DOCTYPE suivie de l'élément <html> lequel comprend une balise <body> précédée par <head> et <title>.
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/dtD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Titre du document</title> </head> <body> <!-- Contenu du document --> </body> </html>
<!-- Les erreurs en gras sont ici rédhibitoires --> <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/dtD/xhtml1-strict.dtd"> <html> <body topmargin="0" leftmargin="0"> <p name="para1">Le texte du <b>paragraphe</p><b> <img src="image.gif" width="100" height="75"> </body> <html> <!-- Le même document corrigé est maintenant valide --> <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/dtD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="FR" lang="French [fr]"> <head> <title>Titre</title> </head> <body style="top-margin:0px; left-margin:0px"> <p id="para1">Le texte du <b>paragraphe<b></p> <img src="image.gif" width="100" height="75" alt="texte alternatif"/> </body> </html> |
Les attributs de langue peuvent apparaître dans n'importe quelle balise XHTML hormis : base, br, frame, frameset, hr, iframe, param, et script.
<html xml:lang="FR" lang="FR">...</html> <div xml:lang="FR" lang="French [fr]">...</div>