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.