DTD - Element

In einer DTD werden Elemente durch Elementdeklarationen erklärt.

Erklärung eines Elements

In DTDs werden XML-Elemente durch Elementdeklarationen erklärt. Elementdeklarationen verwenden die folgende Syntax:

!ELEMENT 元素名称 类别

oder

!ELEMENT 元素名称 (元素内容)

Leere Elemente

Leere Elemente werden durch den Kategorienamen EMPTY erklärt:

!ELEMENT 元素名称 EMPTY

Example:

!ELEMENT br EMPTY

XML-Beispiel:

<br />

Elemente, die nur PCDATA enthalten

Elemente, die nur PCDATA enthalten, werden durch #PCDATA in Klammern erklärt:

!ELEMENT 元素名称 (#PCDATA)

Example:

!ELEMENT from (#PCDATA)

Elemente mit jedem Inhalt

Elemente, die durch den Kategorienamen ANY erklärt werden, können jede Kombination von parsebaren Daten enthalten:

!ELEMENT 元素名称 ANY

Example:

!ELEMENT note ANY

Elemente mit Unterlementen (Sequenz)

Elemente mit einem oder mehreren Unterlementen werden durch die Namen der Unterlemente in Klammern deklariert:

<!ELEMENT Elementname (Unterlementname 1)>

oder

<!ELEMENT Elementname (Unterlementname 1,Unterlementname 2,...)>

Example:

<!ELEMENT note (to,from,heading,body)>

Wenn Unterlemente in einer durch Komma getrennten Abfolge deklariert werden, müssen diese Unterlemente in der Dokument in derselben Abfolge auftreten. In einer vollständigen Deklaration müssen die Unterlemente ebenfalls deklariert werden, und die Unterlemente können ebenfalls Unterlemente haben. Die vollständige Deklaration des "note"-Elements ist:

<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to      (#PCDATA)>
<!ELEMENT from    (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body    (#PCDATA)>

Die Angabe von Elementen, die nur einmal auftreten

<!ELEMENT Elementname (Unterlementname)>

Example:

<!ELEMENT note (message)>

Der obige Beispiel erklärt: Das Unterlement "message" muss einmal auftreten und nur im "note"-Element auftreten.

Die Angabe von Elementen, die mindestens einmal auftreten

<!ELEMENT Elementname (Unterlementname+)>

Example:

<!ELEMENT note (message+)>

Das Pluszeichen im obigen Beispiel besagt: Das Unterlement "message" muss im "note"-Element mindestens einmal auftreten.

Die Angabe von Elementen, die nullmal oder mehrmals auftreten

<!ELEMENT Elementname (Unterlementname*)>

Example:

<!ELEMENT note (message*)>

Das Sternchen im obigen Beispiel besagt: Das Unterlement "message" kann im "note"-Element nullmal oder mehrmals auftreten.

Die Angabe von Elementen, die nullmal oder einmal auftreten

<!ELEMENT Elementname (Unterlementname?)>

Example:

<!ELEMENT note (message?)>

Das Fragezeichen im obigen Beispiel besagt: Das Unterlement "message" kann im "note"-Element nullmal oder einmal auftreten.

Die Angabe von "nicht.../oder..." Typen von Inhalten

Example:

<!ELEMENT note (to,from,header,(message|body))>

Der obige Beispiel erklärt: Das "note"-Element muss die "to"-Elemente, "from"-Elemente, "header"-Elemente sowie die nicht "message"-Elemente "body"-Elemente enthalten.

Mixed content type is declared.

Example:

<!ELEMENT note (#PCDATA|to|from|header|message)*>

The above example declares that the "note" element can contain zero or more occurrences of PCDATA, "to", "from", "header", or "message".