MudGuard: validator Fehler kein Fehler ?!

Beitrag lesen

Hi,

Doch, es muß gefunden werden, daß die DTD fehlerhaft ist.

Ein

<!ATTLIST foo
   bla     ID       #IMPLIED
   blubb   ID       #IMPLIED>

(egal, ob das jetzt direkt da steht, oder über irgendwelche Ersetzungen (Entities) zusammenkommt)

ist ein Fehler in der DTD.

Eine DTD kann nicht sagen: erlaubt sind die Attribute @foo und @bar, allerdings nur eins von beiden, wenn beide vom Typ BAZ sind.

Bei anderen Typen als ID wäre es erlaubt, daß es mehrere Attribute von diesem Typ gibt. Aber der Typ ID ist speziell, wie ein Highlander. Es kann nur einen geben!

In der Attributliste zu einem Element ist maximal ein Attribut vom type ID erlaubt.
Also kann es gar nicht zur Auswahl "eins von mehreren vom Typ ID" kommen, da das zweite Attribut vom type ID schon in der DTD verboten ist.

Nicht in ihrer Macht. Dazu bedarf* es Kontextsensitivität, die erst XML Schema liefert.

Nein, für das Verbot, mehrere Attribute vom Typ ID für ein Element zu definieren, braucht's kein Schema.
Das ist bereits in der DTD verboten.

cu,
Andreas

--
Warum nennt sich Andreas hier MudGuard?
O o ostern ...
Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.