soll das heißen: XHTML schummelt?
Nein, HTML schummelt nicht. ;-)
Wie gesagt, man sollte sich nicht vom X in XHTML beirren lassen. Es ist nach wie vor HTML.
also, Mozilla macht da sehr wohl einige Unterschiede. XHTML wird sehr viel strikter geparst (wenn man es als application/xml+xhtml angibt) und schränkt z.B. das "laxe" DOM ein.
Ok, dann nächste Frage: wie klappt das mit den Namespaces? Wenn ich auf den Link gehe (xmlns von XHTML-Docs), komme ich lediglich zu einem absolut nichtssagenden Dokument. Das wird ja wohl kaum die Namespace-Definition sein?
Jein. Namespaces dienen nur dazu Elemente voneinander unterschieden zu können. Z.B. buch:titel html:titel beide Elemente hiessen 'titel', der Namensraumpräfix ordnet diese Elemente dem entsprechenden Namensraum zu. Es ist aber keines Wegs nötig, dass hinter der Namensraum-URL auch tatsächlich was steht. So könnte man auch xmlns:xlink="http://www.mydomain.org/blabla" schreiben.
Namensraum hat also mit einem Dokument in dieser Hinsicht nichts zu tun.
ok. Und wieso dann diese komische Identifikation über eine URL? Wäre es nicht sinnvoller, zu schreiben xmlns:xlink="<XLINK-Identifier>"? Na, sehr theoretisch, aber wenn sich in einem Dokument ein Link verbirgt denke ich halt, der hat da auch was zu suchen und steht da nicht nur aus Gaudi.
Da aber XLink eben eine Standard ist interpretieren Browser ihn (ok, zur Zeit nur Mozilla und auch nicht vollständig). XLink ist in dieser Hinsicht nichts anderes als eine Sammlung von Arrtibuten die man beliebigen Elementen zuweisen kann.
Die Interpretation erfolgt in diesem Fall tatsächlich durch den Namensraum. Ebenso in den Beispielen der Namensraum 'html'.
Wenn der Browser mit diesen Namensräumen was anfangen kann, interpretiert en die zugehörigen Elemente.
ok, danke. Das wäre geklärt.
Dann noch eine (allerletzte ;) Frage:
ich habe in meinem DTD folgende Deklaration:
\\
<!ELEMENT link ANY>
<!ATTLIST link
link:type (simple) "simple"
link:href CDATA #IMPLIED
///
wenn ich jetzt in meiner XML-Datei Folgendes schreibe:
\\
<link link:href="http://hier_lang">Link</link>
///
dann müßte doch " link:type="simple" " automatisch vom Parser "ergänzt" werden, da ich einen Defaultwert deklariert habe. Wird's aber nicht! In obigem Fall erkennt der Moz mit das nicht als Link, ich muß bei jedem Link-Tag explizit " link:type="simple" " dazuschreiben.
Gruß,
KonRad -
Warum der Staat (nicht) töten darf :: polithink.org -
the politicultural e-zine :: http://www.polithink.org