Hallo, Steffen,
versuche mich gerade in XHTML. Kann mir jemand sagen was die Meldung beim validieren über den W3C Validator zu bedeuten hat? Habe ich da ein Problem mit meinem Browser oder ist was am Quelltext falsch?
Note: The HTTP Content-Type header sent by your web browser (unknown) did not contain a "charset" parameter, but the Content-Type was one of the XML text/* sub-types (text/xml).
Wieso lieferst du XHTML mit dem MIME-Typ text/xml aus? Empfohlen wäre application/xhtml+xml (http://www.w3.org/TR/xhtml-media-types), angemessen und praktikabel ist text/html (http://www.w3.org/TR/xhtml1/#guidelines).
Bitte eventuell deinen Hosting-Provider, den Webserver so anzupassen, dass Dateien mit der Endung xhtml als application/xhtml+xml ausgeliefert werden (oder benutze .htaccess, siehe unten). Momentan ist es jedoch sowieso nicht ratsam, XHTML als XHTML auszuliefern, stattdessen solltest du dich an die genannten Kompatibilitätsrichtlinien halten. Dazu finden sich einige Diskussionen im Forumsarchiv: http://selfsuche.teamone.de/ (Stichwörter XHTML, text/html, application/xhtml+xml ...).
<?xml version="1.0" encoding="iso-8859-1"?>
Wenn du XHTML als text/html auslieferst, gilt die Regel von XML nicht, dass die Kodierung im XML-Prolog angegeben werden sollte. So oder so solltest du sie möglichst im Content-Type-Header angeben, beispielsweise indem du in eine .htaccess-Datei einträgst:
AddType 'text/html; charset=iso-8859-1' .html
beziehungsweise
AddType 'application/xhtml+xml; charset=iso-8859-1' .xhtml
Mit http://forum.de.selfhtml.org/cgi-bin/http_trace.pl kannst du in Erfahrung bringen, wie der betreffende HTTP-Header letztlich aussieht.
Von der Angabe einer XML-Deklaration in als HTML ausgelieferten XHTML-Dokumenten ist auch aus anderen Gründen abzuraten, Stichwort »doctype switch«, siehe Forumsarchiv und/oder Google.
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=ISO-8859-1" />
Relevant ist der Inhaltstyp, der via HTTP-Header übermittelt wurde. Nur wenn du das Dokument als text/html auslieferst und sonst keine Kodierungsangabe vorhanden ist oder das Dokument anders als über HTTP bezogen wird, ist diese meta-Angabe aufgrund der Kodierungsangabe wichtig.
Mathias
»Das Usenet ist mittlerweile in Teilen unbenutzbar geworden, ein düsterer, mit Glasscherben und Hundescheiße übersäter Spielplatz für Kontroll- und Hassmaniker, deren Neurosen sich gegenseitig ergänzen.« (MH)