Hallo Daniel,
Für XHTML mit SVG und MathML gibt es ja schon DTDs, ich bin allerdings nicht sicher, ob es auch eine W3C-Empfehlung dazu gibt. Es geht mir auch nicht darum, ob das noch XHTML ist, sondern darum, dass es relativ einfach ist, bestehende XML-Anwendungen zu neuen XML-Anwendungen zu kombinieren.
Dein „relativ“ finde ich hier sehr „relativ“ ;)
Im Ernst: Es ist immer noch ein stressiger Job, finde ich. Ich hatte mal ein Tim-XHTML angedacht, hab es dann aber relativ schnell in die Liste der irgendwann bei Langeweile zu bastelnden Dinge abgeschoben, weil aufwendig.
Mit XHTML-Modzularization habe ich mich noch nicht genauer auseinandergesetzt, aber es ist wohl der weg, solche Erweiterungen konzeptionell sauber umzusetzen.
Nun ja. Sauber finde ich das nicht gerade. Guck Dir mal die Verrenkungen in der von Gunnar verlinkten XHTML/MathML/SVG-DTD an, um überhaupt Namensräume in XML hinzukriegen. Ich sage nur: hartkodierte Prefixe. Aber das sind nun mal die Limitationen von XML.
Für HTML müsste man neue Erweiterungen auf Basis von SGML entwickeln und zudem kann ein Browser, der die Erweiterung und DTD dazu nicht kennt, das Dokument im Allgemeinen noch nicht einmal richtig parsen und ihm unbekanntes ignorieren.
Oh, in HTML 4 gibt's die (nicht normativen, ich weiss) [link:http://www.w3.org/TR/html4/appendix/notes.html#notes-invalid-docs@title=Empfehlungen|, wie Browser mit unbekannten Elementen und Attributen invalider Dokumente umzugehen haben. Soweit ich weiss, macht das auch so ziemlich jeder Browser. Aber SGML ist ja .. nicht in Browsern vorhanden. ;)
Aber ich frage mich immer öfter, was gegen eine liberalere Nutzung von Elementen anderer Namensräume in XML spricht. Nach dem Motto: einfach erstmal erlauben, Restriktionen kann man immer noch nachträglich einführen. Atom macht das z.B. größtenteils, wenn auch nur mit Elementen. Und ich frag mich immer noch, was daran schlecht sein soll, solange die Host Language immer noch die grundlegende Struktur der Host Language beschreibt.
Soll heissen: ich will mein <div tim:personalInformation="Unnützes Div"> haben. ;)
Tim