XML DTD - Element vs. Attribut

Dr Franke Ghostwriter
mir ist nicht ganz klar, wann ich <!ELEMENT und wann <!ATTLIST einsetze.

In der Musterklausur I vom aktuellen Semester geht es in Aufgabe 4 um die Erstellung einer DTD für die Lagerpositionen. In der Angabe steht "Mögliche Teilearten sind: Zulieferteil, Zwischenprodukt, Entdprodukt, Verbrauchmaterial." In der Lösung wird die Teileart in der DTD mit "<!ELEMENT Teileart (#PCDATA)>" deklariert.

In der Einsendeaufgabe 3.1 geht es um die Erstellung einer DTD für Studentendaten. In der Angabe steht "Die schriftlichen Arbeiten umfassen die Art der Arbeit (Diplomarbeit, Seminararbeit, Bachelorarbeit, Masterarbeit oder Dissertation), das Thema, die erreichte Note, optional den oder die Betreuer und das Abgabedatum." In der Lösung wird die Art der Arbeit wie folgt deklariert: "<!ATTLIST Arbeit Art (Diplomarbeit | Seminararbeit | Bachelorarbeit | Masterarbeit | Dissertation) #REQUIRED>".

Warum wird hier nicht in beiden Fällen einfach die ATTLIST verwendet? Kann das jemand kurz erklären? 🙂

Viele Grüße
Susi-MX3
 
Susi,

beide Lösungen sind richtig. Steht auch fast wörtlich im Kurstext, vor allem der letzte Satz:

Gegen die Verwendung von Attributen spricht unter anderem die Tatsache, dass Attribute nicht mehrfach auftreten du ̈rfen. Außerdem sind Attribute unstrukturiert. Fu ̈r die Verwendung von Attributen in der Modellierung spricht die Tatsache, dass Attribute eine kompaktere Schreibweise als Elemente erlauben. Attribute ermöglichen eine bessere Abbildbarkeit von alternativen Bedingungen. Wenn wie in Beispiel 3.4.14 das Attribut ”Setup“ mit den Aufzählungswerten ”y“ und ”n“ belegt werden kann, ist das leichter nachzuvollziehen als eine Abbildung durch ein optionales leeres Element. In vielen Fällen ist aber die Entscheidung, ob Daten als Elemente oder Attribute modelliert werden, eine Sache des Geschmacks des Modellierers.


Kannst Du also so machen, wie Du willst.

Grüße,
Mo
 
Oben