|
Ein XHTML-Dokument ist gültig (valid),
wenn es neben der Wohlgeformtheit nach
den Regeln von XML auch noch die Regeln der XHTML-DTD
befolgt. Diese DTD wurde vom W3C veröffentlicht
und ist internationaler Standard für XHTML.
Die Grundregeln für streng konformes
XHTML sind:
- Jedes Dokument beginnt mit der XML-Deklaration
- Auf die XML-Deklaration muss die Dokumenttyp-Deklaration
folgen (DOCTYPE)
- Das html-Element enthält genau
ein head-Element, gefolgt von genau
einem body-Element oder einem einzigen
frameset-Element
- Jedes head-Element muss genau ein
title-Element enthalten
- Alle Elementnamen und Attributnamen müssen
in Kleinbuchstaben geschrieben werden
- Alle leeren Elemente müssen wie bei XML
mit speziellen Leer-Tags geschrieben werden
- Alle Elemente müssen mit einem End-Tag
abschliesen - es gibt keine optionalen End-Tags
mehr wie in HTML
- Elemente müssen korrekt nach den Regeln
der DTD geschachtelt weden
Um den Übergang von HTML zu XHTML zu erleichtern,
wurden drei unterschiedliche DTDs erstellt:
- "Strict" (streng)- enthält
nur XML-konforme Regeln
- "Transitional" (übergangsweise)
- enthält noch einige Elemente aus HTML,
die in XML nicht mehr gültig sind
- "Frameset" - erlaubt die
Definition von Frames (Rahmen) zur Unterteilung
des Browserfensters, wie sie aus HTML bekannt
sind. Wird von XML ebenfalls nicht unterstützt.
Die DOCTYPE-Deklaration gibt den Namen
und den Pfad der DTD an:
<!DOCTYPE html PUBLIC "-//W3C//DTD
XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
Ein Parser wird demnach zur Prüfung der
Gültigkeit einer XHTML-Datei die xhtml1-strict.dtd,
wie sie auf dem Webserver des W3C abgelegt ist,
heranziehen. Um Übertragungszeiten zu sparen,
können Sie diese DTD in einem lokalen Verzeichnis
speichern und den Pfad in der DOCTYPE-Deklaration
entsprechend ändern. Ihr Webserver muss für
den Dateityp .dtd konfiguriert sein. Sie finden
die drei DTDs in der aktuellen Fassung beim W3C.
Im Folgenden werden wir nur noch auf die Regeln
aus der DTD "Strict" eingehen, da die
DTD "Transitional" und die DTD "Frameset"
auf lange Sicht nicht mehr angewendet werden.
|