DTD - Element

I en DTD deklareras element genom elementdeklarationer.

Deklarera ett element

I DTD deklareras XML-element genom elementdeklarationer. Elementdeklarationer används med följande syntax:

!ELEMENT 元素名称 类别

eller

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

Tomma element

Tomma element deklareras med kategorikлючом EMPTY:

!ELEMENT 元素名称 EMPTY

Exempel:

!ELEMENT br EMPTY

XML-exempel:

<br />

Element som endast innehåller PCDATA

Element som endast innehåller PCDATA deklareras genom #PCDATA inom parenteser:

!ELEMENT 元素名称 (#PCDATA)

Exempel:

!ELEMENT from (#PCDATA)

Element med vilket som helst innehåll

Elementer som deklareras med kategorikлючом ANY kan innehålla en kombination av alla möjliga parsbara data:

!ELEMENT 元素名称 ANY

Exempel:

!ELEMENT note ANY

Element med underelement (sekvens)

Element med en eller flera underelement deklareras genom underelementens namn inom parenteser:

<!ELEMENT elementnamn (underelementnamn 1)>

eller

<!ELEMENT elementnamn (underelementnamn 1,underelementnamn 2,...)>

Exempel:

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

När underelement deklareras i en sekvens av kommaseparerade element måste dessa element uppträda i samma ordning i dokumentet. I en fullständig deklaration måste underelementen också deklareras, och underelement kan ha underelement. Den fullständiga deklarationen av "note"-elementet är:

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

Deklarera element som endast får förekomma en gång.

<!ELEMENT elementnamn (underelementnamn)>

Exempel:

<!ELEMENT note (message)>

Ovanstående exempel deklarerar att underelementet "message" måste förekomma en gång och endast en gång inom "note"-elementet.

Deklarera element som måste förekomma minst en gång.

<!ELEMENT elementnamn (underelementnamn+)>

Exempel:

<!ELEMENT note (message+)>

Plussteken i ovanstående exempel deklarerar att underelementet "message" måste förekomma minst en gång inom "note"-elementet.

Deklarera element som kan förekomma noll eller flera gånger.

<!ELEMENT elementnamn (underelementnamn*)>

Exempel:

<!ELEMENT note (message*)>

Stjärnan i ovanstående exempel deklarerar att underelementet "message" kan förekomma noll eller flera gånger inom "note"-elementet.

Deklarera element som kan förekomma noll eller en gång.

<!ELEMENT elementnamn (underelementnamn?)>

Exempel:

<!ELEMENT note (message?)>

Frågetecken i ovanstående exempel deklarerar att underelementet "message" kan förekomma noll eller en gång inom "note"-elementet.

Deklarera innehåll av typ "icke.../jag..."

Exempel:

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

Ovanstående exempel deklarerar att "note"-elementet måste innehålla "to"-elementet, "from"-elementet, "header"-elementet samt icke "message"-elementet som "body"-elementet.

Innehållet deklarerar en blandad typ

Exempel:

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

Ovanstående exempel deklarerar: "note" element kan innehålla PCDATA som kan uppträda noll eller flera gånger, "to", "from", "header" eller "message".