Extensible Hyper Text Markup Language

Alles, was ich bisher zum Thema XHTML geschrieben habe, ist auf dieser Seite versammelt.

Adventures in XHTML

Veröffentlicht am Samstag, 31. Januar 2009, von infinity auf Alphane Moon

Beim Einsatz von XHTML kann man viele Überraschungen erleben. Ich verwende zum Beispiel auf jeder Seite SVG, das inline in das Markup eingebettet ist. Damit die Grafiken im Browser auch zu sehen sind, muß die Seite mit dem richtigen MIME-Type ausgeliefert werden: application/xhtml+xml. Der für normale HTML-Seiten übliche MIME-Type text/html funktioniert nicht, das ist jedoch der einzige, den der Internet Explorer versteht. Eine Lösung muß gefunden werden: eine Content Negotiation, die auf dem ACCEPT-Header basiert.

XHTML muß in manchen Fällen mit einem bestimmten MIME-Type ausgeliefert werden. Das kann man ja irgendwie einstellen. Warum ist das ganze eigentlich ein Problem? Das Problem liegt darin, daß der Internet Explorer mit dem benötigten MIME-Type application/xhtml+xml nichts anfangen kann. Ich kann mir das auch nicht erklären, warum das so ist, denn andere Browser haben damit keine gravierenden Schwierigkeiten.

Je nach den verwendeten Sicherheitseinstellungen zeigt der Internet Explorer ein faszinierend unerwartetes Verhalten: Es erscheint ein Download-Prompt oder eine Fehlermeldung. Beiden ist gemeinsam, daß die XHTML-Seite überhaupt nicht angezeigt wird.

Internet Explorer verstand schon vorher kein application/xhtml+xml. Neu in Version 8: Jetzt mit totalem Absturz nach der Fehlermeldung.

Die Tatsache, daß ein Browser in der Regel einen ACCEPT-Header sendet, kann man für eine Content Negotiation ausnutzen: Die einfachste Variante mit PHP ist ziemlich geradeaus: Es wird überprüft, ob die Zeichenkette application/xhtml+xml im HTTP_ACCEPT vorkommt. Ist das der Fall, wird mit der Funktion header() der entsprechende MIME-Type ausgegeben. Eine ausgefeiltere Umsetzung berücksichtigt den q-Wert aus dem ACCEPT-Header.

Linksammlung XML-Spezifikationen

Veröffentlicht am Freitag, 14. März 2008, von infinity auf Alphane Moon

Eine Sammlung von Links auf wichtige Spezifikationen zum Thema XML, XHTML, SVG und andere Sprachen, die auf XML basieren.

all content copyright © 2007-2012 Alphane Moon