ZURÜCK

4.6.1.1: SGML Elemente

Eine DTD definiert die zulässigen Elemente eines Dokuments und ihr Verhältnis zueinander. Als Elemente werden dabei Textstücke bezeichnet, die eine strukturelle Einheit bilden. Jedes Dokument setzt sich aus Elementen zusammen. Elemente können in verschiedener Weise definiert werden. Eine Möglichkeit ist die Verwendung von Anfangs - und Endtags. Das zu einem Anfangstag gehörende Endtag besteht aus dem Bezeichner des Anfangtags, dem (innerhalb der spitzen Klammer) ein Schrägstrich (slash) vorangestellt ist. Dieser Absatz ist also in die Tags

<section>
und
</section>
eingeschlossen. Formal kann eine Element in einer DTD folgendermaßen definiert werden:

<!ELEMENT title - O (#PCDATA) >

Dabei stehen nach

!ELEMENT
drei Blöcke. Die folgenden Beispiele (wie alle in diesem Abschnitt) sind aus Sperberg-McQueen und Burnard (TEI [->]) entnommen. Die DTD einer Gedichtsammlung könnte z. B. so aussehen:

<!ELEMENT anthology      - -  (poem+)>
<!ELEMENT poem           - -  (title?, stanza+)>
<!ELEMENT title          - O  (#PCDATA) >
<!ELEMENT stanza         - O  (line+)   >
<!ELEMENT line           O O  (#PCDATA) >

Andere Gedichtformen könnten so definiert werden:


<!ELEMENT (line | line1 | line2) O O (#PCDATA) >
<!ELEMENT couplet O O (line1, line2) >

Oder auch so:

<!ELEMENT refrain - - (#PCDATA | line+)>
<!ELEMENT poem    - O (title?,
                      ( (line+)
                      | (refrain?, (stanza, refrain?)+ ) )) >

Neben dieser systematischen expliziten Definition einer hierarchischen Dokumentstruktur gibt es die Möglichkeit bestimmte Elemente in allen "Unterelementen" eines Elements zuzulassen. Das ist z. B. für Anmerkungen oder Hervorhebungen sinnvoll, die nicht an ein bestimmtes Element gebunden sein sollen. Eine solche Inclusion kann folgendermaßen definiert werden:

<!ELEMENT (note | variant) - - (#PCDATA)>
<!ELEMENT poem - O (title?, (stanza+ | couplet+ | line+) )
                                         +(note | variant) >

(Der Zeilenumbruch dient nur der besseren Lesbarkeit. Er wird als "white space" bei der Interpretation der DTD wie ein Leerzeichen behandelt). Diese Definition lässt in allen Elementen des Elements

poem
die Elemente
note
und
variant
zu.

Andererseits gibt es die Möglichkeit das Auftreten von bestimmten Elementen in einem Element zu verbieten. Eine solche Exclusion lässt sich folgendermaßen festgelegen:

<!ELEMENT title  - O  (#PCDATA)  -(note | variant) >
<!ELEMENT (note | variant) - - (#PCDATA)  
                                -(note | variant) >

Hier werden im Element

title
und in den Elementen
note
und
variant
selbst diese beiden Elemente verboten (also auch
note
in
variant
, was durch eine etwas ausführlicher Definition vermieden werden könnte.)


ZURÜCK

© 1999 / HTML-Version 13. 7. 1999: R. Ferber, email: R. Ferber