Hallo Thomas,
danke für deine Antwort. Ich habe mich wahrscheinlich missverständlich ausgedrückt.
XML ist weder XHTML noch HTML.
Ja, natürlich. Ich weiß, was die einzelnen Abkürzungen bedeuten, und wie sie zueinander in Verbindung stehen. Ich kann nur den normativen Anhang (http://www.w3.org/TR/xhtml1/#h-4.9) zur Definition von XHTML nicht verstehen.
In xml ist das volkommen egal, ob du <a><a><a><a></a></a></a></a> oder sontwas schreibst.
Aber einem XML-Parser ist das nicht egal, wenn er eine DTD vorgesetzt bekommt, in der steht, dass so etwas nicht erlaubt ist. Und genau das steht doch - soweit ich es verstehen konnte - in der DTD für XHTML. In dieser DTD wird eine Verschachtelung vom Typ <a>...<a>...</a>...</a> verboten. Wozu also noch der normative Anhang? Es ist doch bereits alles in der DTD gesagt.
Aus XML sicht bedeutet <a> absolute "nichts", d.h. dass <a> ein Link ist, ist nur in (X)HTML von Bedeutung.
Aber wenn in einem XML-Dokument (und eine XHTML-Datei mit korrekter XML-Deklaration ist ein XML-Dokument) auf eine DTD Bezug genommen wird, bedeutet "<a>" doch zumindest, dass für dieses Element bestimmte, in der DTD genau definierte Verschachtelungsregeln gelten. Und wenn die DTD, auf die Bezug genommen wird, diejenige ist, die XHTML beschreibt, dann lauten diese Verschachtelungsregeln für das a-Element wie folgt:
(#PCDATA | br | span | bdo | map | object | img |
tt | i | b | big | small | em | strong | dfn | code |
q | samp | kbd | var | cite | abbr | acronym | sub |
sup | input | select | textarea | label | button |
ins | del | script)*
Es wird also ein weiteres a-Element innerhalb eines a-Elements verboten.
Und da in HTML keine bi- bzw. multidirektionale Links exsitieren, muss diese Verschachtelungsverbot für (X)HTML gemacht werden.
Ja, genau hier liegt mein Verständnisproblem: Dieses Verschachtelungsverbot existiert doch, nämlich in der DTD. Dort wird genau definiert, welche Unterelemente ein a-Element enthalten darf. Da bei dieser Definition das a-Element als Unterelement nicht aufgeführt wird, ist es verboten. Jetzt gibt es aber zusätlich zu der DTD noch einen normativen Anhang in dem genau dieses Verschachtelungsverbot noch einmal verbal ausformuliert wird. Als Begründung für diesen normativen Anhang wird angegeben, dass sich so ein Verschachtelungsverbot nicht in einer XML-DTD formulieren lässt. Aber es lässt sich doch in der DTD formulieren (und es wurde ja auch formuliert). Somit erscheint mir der normative Anhang nicht nur sinnlos, sondern einfach falsch. Ich kann mir aber nicht vorstellen, dass dieser Anhang wirklich falsch ist, deswegen gehe ich davon aus, dass ich diesen normativen Anhang falsch verstanden habe. Ich komme aber nicht darauf.
Zusammengefasst: Zur Definition von von XHTML gibt es einen sogenannten normativen Anhang, in dem bestimmte Verschachtelungsregeln ausformuliert wurden. Diese wurde deshalb ausformuliert, weil es angeblich nicht möglich ist, die Regeln in einer für Computer verständlichen Art in der Definition für XHTML zu formulieren. Meiner Einschätzung nach *ist* es aber möglich, diese Regeln für Computer verständlich zu formulieren und das wurde auch getan.
Ich hoffe, du kannst jetzt verstehen, was ich meine.
Robert
Dieser Beitrag wurde zu 100% aus ganzen Sätzen hergestellt und ist biologisch abbaubar.