ELEMENT
Mithilfe der ELEMENT
-Anweisung werden die einzelnen Elemente innerhalb des Dokumenttyps deklariert, der von der DTD definiert wird. Zunächst wird das Element anhand seines Namens deklariert, und anschließend wird angegeben, welcher Inhalt für das Element zulässig ist.
Syntax
<!ELEMENT name content >
Parameter
- name
Der Name des Elements. Die Groß- und Kleinschreibung muss berücksichtigt werden.
content
Das zulässige Inhaltsmodell für das Element. Dabei muss es sich um eines der Folgenden handeln:ANY – Im Element ist beliebiger Inhalt zulässig. Bei der Verwendung in einer Elementdeklaration lässt dieses Schlüsselwort ein offenes Inhaltsmodell ohne Einschränkungen für die Elemente und alle ihre untergeordneten Knoten zu.
EMPTY – Für das Element ist kein Inhalt zulässig, und es muss leer bleiben.
Declared content rule – Für diese Option muss eine in Klammern eingeschlossene Inhaltsregel geschrieben werden.
In der folgenden Tabelle werden die Symbole für reservierte Schlüsselwörter und Interpunktionszeichen aufgelistet, die neben den Namen für andere innerhalb der DTD deklarierte Elemente verwendet werden können, um die Regel für Elementinhalt zu erstellen.
Symbole Beschreibung #PCDATA
Lässt analysierte Zeichendaten als Teil des Elementinhalts zu.
name
Der Name eines Elements. Dabei kann es sich um ein definiertes Element oder sonstige anhand ihres Namens in der DTD definierte Elemente handeln, für die zusätzliche
ELEMENT
-Deklarationen verwendet werden.Wenn keine weiteren Interpunktionszeichen oder Symbole in der Inhaltsregel enthalten sind, ist genau ein Vorkommen des benannten Elements zulässig und erforderlich.
()
Obwohl beim Deklarieren eines Inhaltsmodells für ein Element mindestens ein Klammernpaar erforderlich ist, können Sie auch weitere Klammernpaare schachteln. Mithilfe dieses Verfahrens können Sie ein komplexeres Inhaltsmodell für ein Element definieren.
|
Mithilfe eines vertikalen Balkens können zwei benannte Elemente getrennt werden. Wenn ein solcher verwendet wird, gibt er an, dass jedes dieser Elemente (d. h. das Element vor oder das Element nach dem Balken) als untergeordnetes Element festgelegt sein kann.
,
Mithilfe eines Kommas können zwei benannte Elemente oder geschachtelte Regeln getrennt werden. Wenn ein solches verwendet wird, gibt dieses an, dass die Elemente bzw. Regeln in der angegebenen Reihenfolge aufgeführt werden müssen.
?
Ein Fragezeichen kann als Suffix/Operand verwendet werden. Wenn ein solches verwendet wird, gibt dieses an, dass das Element bzw. die Regel, das bzw. die diesem vorangeht, optional ist. Es kann jedoch bei Verwendung nur einmal an dieser Stelle in der XML-Dokumentstruktur angeführt werden.
+
Ein Pluszeichen kann als Suffix/Operand verwendet werden. Wenn ein solches verwendet wird, gibt dieses an, dass das Element bzw. die Regel, das bzw. die diesem vorangeht, erforderlich ist. Es kann bei Verwendung mehrmals an dieser Stelle in der XML-Dokumentstruktur angeführt werden.
*
Ein Sternchen kann als Suffix/Operand verwendet werden. Wenn ein solches verwendet wird, gibt dieses an, dass das Element bzw. die Regel, das bzw. die diesem vorangeht, optional ist. Es kann bei Verwendung mehrmals an dieser Stelle in der XML-Dokumentstruktur angeführt werden.
Beispiele
Deklariert ein
<test>
-Element, das beliebigen Inhalt enthalten kann:<!ELEMENT test ANY >
Deklariert ein
<Image>
-Element, das leer sein muss (d. h. keinen Inhalt aufweisen kann):<!ELEMENT Image EMPTY >
Deklariert ein
<title>
-Element, das nur Zeichendaten enthalten darf (und kein weiteres Markup):<!ELEMENT title (#PCDATA) >
Deklariert ein
<fruit>
-Element, das entweder ein<apple>
-Element oder ein<orange>
-Element enthalten darf:<!ELEMENT fruit (apple|orange) >
Deklariert ein
<book>
-Element, das ein<author>
-Element enthalten muss, auf das ein<title>
-Element folgt:<!ELEMENT book (author,title) >
Deklariert ein
<memo>
-Element, das ein<body>
-Element enthalten muss, auf das optional ein<postscript>
-Element folgen kann:<!ELEMENT memo (body,postscript?) >
Deklariert ein
<catalog>
-Element, das mindestens ein<book>
-Element enthalten muss:<!ELEMENT catalog (book+) >
Deklariert ein
<table>
-Element, das entweder leer sein oder<rowset>
-Elemente enthalten kann:<!ELEMENT table (rowset*) >