@@moor:
Wird nun die Angabe des Dokumententyps HTML, XHTML im Dokument angegeben oder nicht?
Ja, im Dokument wird der Dokumententyp angegeben – in der DOCTYPE-Angabe <!DOCTYPE html ...>
.
Aber selbst wenn das Dokument in XHTML geschrieben ist, heißt das nicht, dass es auch als XHTML verarbeitet wird. Und eine eventuelle vorhandene XML-Deklaration <?xml version="1.0" ...?>
hat darauf überhaupt keinen Einfluss.
Ob ein XHTML-Dokument als XHTML verarbeitet wird, bestimmt die 'Content-Type'-Angabe im mitgesandten HTTP-Header. Ist diese 'text/html', so wird ein XHTML-Dokument wie ein HTML-Dokument durch den Tag-Soup-Parser gejagt (und sollte deshalb nach Anhang C kompatibel sein). Ist diese 'application/xhtml+xml', wird das Dokument als XHTML verarbeitet (z.B. in der DOCTYPE-Angabe definierte Entities aufgelöst [1, 2]).
Fehlt die 'Content-Type'-Angabe im HTTP-Header, wird ein Client das Dokument wohl als 'text/plain' verarbeiten, also den Quelltext darstellen.
Anders bei lokalen Dateien, da sagt das Betriebssystem, wie die Dokumente verarbeitet werden: Dokumente mit der Endung '.html' bspw. als HTML, solche mit der Endung '.xhtml' als XHTML. Dann erhält der Parser die Information über die Zeichencodierung bei Verarbeitung als HTML aus der 'http-equiv'-Angabe bzw. bei Verarbeitung als XHTML aus der XML-Deklaration – sofern vorhanden.
Live long and prosper,
Gunnar
Erwebsregel 208: Manchmal ist das einzige, was gefährlicher als eine Frage ist, eine Antwort.