Die Welt des XHTML
Weshalb zwei Sachen für das Gleiche?
Diese Frage kann man sich natürlich stellen, denn auf den ersten Blick unterscheiden sich die Seiten nicht voneinander, egal ob sie nun als text/html oder application/xhtml+xml ausgeliefert werden: In beiden Fällen werden Webdokumente ausgeliefert und im Browser angezeigt. Der wesentliche Unterschied besteht eben in der Basis der Auszeichnungssprache, die verwendet wird, um (X)HTML zu beschreiben, etwas, das sich auch auf die Struktur der Dokumente auswirkt.
So können die Elemente in HTML sowohl groß als auch klein geschrieben werden,
das hat auf den Darstellungsvorgang keinerlei Auswirkungen. So sind die
Elemente <span> und
<SPAN> in HTML gleichwertig.
In XHTML ist dies jedoch nicht mehr gegeben. Was unter HTML noch funktioniert
hat, wird jetzt fehlschlagen, da beides als verschiedene Elemente aufgefaßt
wird. So wird das klein geschriebene Element ganz normal umgesetzt, doch das
groß Geschriebene wird nicht angezeigt, da in der Definition für XHTML nichts
dafür hinterlegt ist. Ebenso ist hier ein Mischen zum Scheitern verurteilt, da
das Konstrukt <span>irgendein Text<SPAN>
einen Syntaxfehler darstellt und nicht verarbeitet wird.
Nicht nur subtile Unterschiede...
Wie Sie feststellen werden, ist der Browser in der Verarbeitung von XHTML
wesentlich kleinlicher als mit HTML, gerade weil XHTML statt auf
SGML (zumindest war dies
bei HTML bis zur Version 4.01 der Fall) auf
XML basiert. Da der Parser
hier strikt auf die Einhaltung der Struktur eines XML-basierten Dokuments
achtet, wird er die Verarbeitung sofort abbrechen, wenn er einen Fehler
erkennt, und auf ihn hinweisen. Dies sorgt dafür, daß nur wohlgeformte
Dokumente verarbeitet werden, was wiederum höhere Ansprüche an das Erstellen
dieser Dokumente stellt. Allerdings stellt dieses stringente Vorgehen auch
sicher, daß kein offensichtlicher Unsinn übergeben werden kann. HTML ist hier
erheblich laxer, so daß auch widersinnige Dokumente verarbeitet werden, obwohl
man hier nur raten kann, was am Ende herauskommt.
So wird ein Browser beispielsweise folgenden HTML-Code problemlos schlucken:
Versucht man das Ganze jetzt unter XHTML, so wird der Parser die Verarbeitung sofort abbrechen. Im Firefox wird eine Fehlermeldung angezeigt und auf die fehlerhafte Stelle im Dokument verwiesen, während der Chrome beispielsweise das Dokument bis zum Fehler aufbaut und dann abbricht. Doch egal wie der Browser sich jetzt verhält, es ist klar zu erkennen, daß irgendetwas nicht stimmt. nach oben