Hallo,
Findest du den Fehler? Würde ihn ein beliebiger XHTML-Autor finden? Meiner Erfahrung nach nicht.
Ich habe mal gesucht...
- es "fehlt" ein XML-Prolog wie <?xml version="1.0"?>
Jein.
Eine solche XML-Deklaration ist nicht zwingend nötig, das XHTML-Dokument wäre auch gültig ohne diese Angabe.
Ist das der (sind das die) Fehler?
Nein. Der Fehler ist, wie Ingo herausfand, die fehlende Kodierungsangabe. Ein echter XML-Parser muss in diesem Falle a) UTF-8 voraussetzen und b) die Verarbeitung abbrechen, sobald er auf den ersten gemäß UTF-8 kaputt kodierten Umlaut trifft. Christophs Schema-Validator macht es im Gegensatz zum W3C-Validator, der nicht einmal einen richtigen XML-Parser verwendet, richtig: http://schneegans.de/sv/?url=http%3A%2F%2Fmolily.de%2F&schema=auto&htmlcomp=yes
Die Kodierungsangabe kann natürlich in der XML-Deklaration erfolgen. Und sollte sie auch. Ich kann sie zwar per HTTP senden, wenn ich das Dokument als application/xhtml+xml ausliefern würde, aber wenn der Benutzer das Dokument lokal speichert, muss ich mich darauf verlassen, dass der Browser die Kodierungsangabe aus dem HTTP-Header ins Dokument übernimmt. Das lokal gespeicherte Dokument würde nämlich nicht angezeigt werden, wenn es in Latin1 geschrieben ist und der XML-Parser des Browsers UTF-9 annimmt.
Aber wir wissen, die XML-Deklaration bringt den MSIE in den Quirks-Modus, deshalb fehlt sie auf molily.de. Also müsste ich sie nur im Falle von application/xhtml+xml anhängen. Das zeigt vor allem: Nur in der Theorie ist ein XHTML-Dokument gleichsam problemlos als HTML und als »echtes« XHTML verarbeitbar, in der Praxis ergeben sich Probleme über Probleme, die keiner, der heutzutage frank und frei XHTML schreibt, erahnt.
Mathias