Thomas J.S.: Verständnisproblem: Ausnahmen von Verschachtelungsregeln

Beitrag lesen

Hallo Robert,

Du hast schon ein SGML Beispiel von Andreas (wieso muss er sich nur MudGuard nennen?? ...na ja sollte mir egal sein *g*) bekommen.

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:

OK, ich glaube dein Unverständniss gründet sich auf die Beziehung von HTML und XML zu SGML.

HTML ist eine SGML-Anwendung, (deshalb sind die DTDs für HTML SGML DTDs) XML dagegen ist eine echte Teilmenge von SGML.
Die Inclusionen und Exclusionen in SGML bedeuten für einen SGML-Editor, dass er bevor die Element-Deklarationen nutzen kann, die Metaregeln überprüfen muss (dazu gehören eben die Excl. und Incl.) was einen vorherigen Kompilierungsschrit erfordert. In SGML ist es weniger wichtig wie lange die Validierung von Dokumenten dauert.
Im Web ist das anders und XML wurde (auch) deshalb als eine vereinfachte Version von SGML entwickelt und verzichtet auf Kontstrukte die eine unmittelbare Verarbeitung erschwären.

Deshalb sind XML-dokumente, wenn sie eine DTD besitzen, auch SGML-Dokumente, ein SGML-Dokument ist dagegen nur dann auch ein XML-Dokument, wenn es bestimmte auf XML bezoge SGML-Deklarationen unterliegt.

Z.B. ein SGML-Dokument kann nur auf Validität überprüft werden, ein XML-Dokument kann darüberhinaus zusätzlich auf Wohlgeformtheit überprüft werden, d.h. sie brauchen nicht zwinged eine DTD.

Grüße
Thomas