XHTML 1.0 est une reformulation de la norme HTML 4.01 (application SGML) en application XML (eXtended Markup Language). Le W3C a proposé la recommandation XHTML 1.0 le 26 janvier 2000, révisée en août 2002.
Trois Document Type Definition XHTML (comparables aux DTD de HTML 4.01) :
Rappel : HTML n'a jamais été destiné à la présentation de la page, il doit être utilisé uniquement pour marquer la structure du document, une feuille de style séparée permet de donner la présentation. XHTML 1.0 doit lui aussi séparer la structure de l'affichage (pas d'attribut color, d'élément font, BR, et pas de ...)
<html>xmlns (xmlnames)
dans <html>, le
nom pour XHTML est http://www.w3.org/19999/xhtml<html>) qui précise la DTD choisie.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd"> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd"> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "DTD/xhtml1-frameset.dtd">
<?xml version="1.0" encoding="EUC-JP"?> est équivalent à : <meta http-equiv="Content-type" content='text/html; charset="EUC-JP"' />
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Home Page</title>
</head>
<body>
<p><a href="http://magali.contensin.free.fr/">redirection</a>.</p>
</body>
</html>
De plus le document doit être valide pour une DTD.
HTML 4.01 était une application SGML, le passage à une application XML demande quelques modifications.
<table rows="3">
compact, nowrap, ismap, declare, noshade,
checked, disabled, readonly, multiple, selected, noresize, defer (ne pose pas
de problème si le navigateur est compatible HTML4).<dl compact="compact">name (dans les éléments a, applet, form, frame,
iframe, img, map) est déclassé en XHTML 1.0 en faveur de
l'attribut id.
Les url qui finissent par "#label" ne réfèrent pas en
XHTML à un élément dont l'attribut est name="label", ils
réfèrent à un élément dont l'attribut est
défini par id. Il faut donc écrire pour être compatible : <a id="label" name="label">...</a>
action = "
http://vacances.com/cgi-bin/enregistrer.pl?lieu=Venise&transport=train"
remplacera :action = "
http://vacances.com/cgi-bin/enregistrer.pl?lieu=Venise&transport=train"
lang et
xml:lang pour spécifier la langue de l'élément <p>un paragraph.</p><p>un autre.</p>
<br></br><br/><p>paragraphe avec <em>mise en
valeur</em>.</p> a ne peut pas contenir d'autres éléments apre ne peut pas contenir les éléments img, object, big, small, sub,
supbutton ne peut pas contenir les éléments input, select, textarea,
label, button, form, fieldset, iframe, isindex.label ne peut pas contenir d'autres éléments labelform ne peut pas contenir d'autres éléments formisindex (NB : élément
déclassé en faveur de input)STYLE / SCRIPT utilisent < ou & ou ]] ou
encore --.
En effet, ces éléments sont déclarés comme un contenu #PCDATA.
Le < et le & seront traités comme début du
balisage et les entités telles que < et & seront reconnues comme
des références à < et & par le processeur XML.
Si vous n'utilisez pas de feuilles de styles ou des scripts externes, il faut encapsuler
le contenu du script ou du style dans un CDATA ce qui évite l'expansion des entités.
<script> <![CDATA[ ... contenu du script ... ]]> </script>