illcp: Reihenfolge der Elemente in der DTD

Beitrag lesen

Hallo,

ich habe eine Frage zur DTD für folgendes Stück aus einem XML-Konstrukt:

  
<inhaltsverzeichnis>  
  
    <ivz_ueberschrift>Inhaltsverzeichnis</ivz_ueberschrift>  
  
    <ivz_kapiteleintrag>Meine frühen Jahre</ivz_kapiteleintrag>  
  
        <ivz_abschnittseintrag>Kindheit</ivz_abschnittseintrag>  
        <ivz_abschnittseintrag>Jugend</ivz_abschnittseintrag>  
  
    <ivz_kapiteleintrag>Wie ich zum Manne wurde</ivz_kapiteleintrag>  
  
        <ivz_abschnittseintrag>Die erste Liebe</ivz_abschnittseintrag>  
  
  </inhaltsverzeichnis>  

Meine Idee für den entsprechenden DTD-Inhalt sah folgendermaßen aus:

  
<!ELEMENT inhaltsverzeichnis (ivz_ueberschrift, ivz_kapiteleintrag+, ivz_abschnittseintrag*)>  
  
    <!ELEMENT ivz_ueberschrift (#PCDATA)>  
    <!ELEMENT ivz_kapiteleintrag (#PCDATA)>  
    <!ELEMENT ivz_abschnittseintrag (#PCDATA)>  

Die Validation schlägt allerdings fehl, da die Reihenfolge der drei inneren Elemente von inhaltsverzeichnis in dieser DTD-Form offenbar festgelegt ist.

Gibt es irgendeine Möglichkeit, die DTD so zu schreiben, dass die Reihenfolge der drei inneren Elemente egal ist und nur deren Anzahl innerhalb "inhaltsverzeichnis" (also genau einmal, mindestens einmal, 0 bis n mal) überprüft wird ?

P.S.: das XML-Stück ist nicht auf meinem Mist gewachsen, es stammt aus einer Klausuraufgabe.

Gruß,

Christian