Hallo,
Und *wie* sagst du dem Browser, dass es sich um XHTML handelt?
selbstverständlich mit dem DOCTYPE. Denn der ist auch noch da, wenn die Ressource *nicht* per HTTP übertragen wird.
Dann müsste der Browser aber schon anfangen zu rendern, bevor er weiß, ob es sich um HTML oder XHTML handelt.nö, warum das? Der DOCTYPE (oder der XML-Prolog) ist doch die allererste Information innerhalb der Datei/Ressource. Also bekommt er die Information über den Typ des Dokuments gleich am Anfang, noch bevor er irgendwas anderes interpretieren muss.
Also ist der Mime-Type „application/xhtml+xml“ völlig umsonst, weil der Browser die Information ja aus dem DOCTYPE herleiten kann?
Gut, man kann eine XHTML-Datei auch als text/xml ausliefern und XHTML erwarten. Aber selbst *das* liegt nicht am DOCTYPE, sondern am xmlns-Attribut am Wurzelelement. Fehlt dieses, wird nur der Elementbaum angezeigt. Fehlt dagegen nur der DOCTYPE gibt es auch bei XHTML keine Probleme (nichtmal Quirksmode).
Ich würde eher sagen, der DOCTYPE legt fest, welche Elemente und Attribute erlaubt sind. Da es auch in dieser Beziehung gewisse Unterschiede zwischen HTML und XHTML gibt (z.B. name-Attribut), brauchte man dafür eben auch einen passenden DOCTYPE.
Zusammenfassend würde ich also sagen:
Mimetype = Verarbeitungsmodus (XHTML, HTML, svg, rdf…)
DOCTYPE = Legt Elemente und Attribute fest
Namespace = Wie sollen die Elemente standardmäßig dargestellt werden und was bedeuten Sie?
mfg. Daniel