DTD - عنصر

در یک DTD، عناصر از طریق اعلام عناصر برای اعلام می‌شوند.

اعلام یک عنصر

در DTD، عناصر XML از طریق اعلام عناصر برای اعلام می‌شوند. اعلام عناصر از طریق دستورالعمل زیر استفاده می‌شود:

!ELEMENT عناصر اسم نوع>

یا

!ELEMENT عناصر اسم (محتوای عناصر)>

عناصر خالی

عناصر خالی از طریق کلمات کلیدیEMPTY برای اعلام شده‌اند:

!ELEMENT عناصر اسم EMPTY>

مثال:

!ELEMENT br EMPTY>

مثال XML:

<br />

عناصر که فقط PCDATA دارند

عناصر که فقط PCDATA دارند، از طریق #PCDATA در گوشه‌های گرد اعلام می‌شوند:

!ELEMENT عناصر اسم (#PCDATA)>

مثال:

!ELEMENT from (#PCDATA)>

عناصر با هرگونه محتوایی

عناصر که از کلمات کلیدیANY برای اعلام شده‌اند، می‌توانند ترکیب هرگونه داده‌های قابل درک را شامل شوند:

!ELEMENT عناصر اسم ANY

مثال:

!ELEMENT note ANY

عناصری که شامل عناصر فرزند (ترتیب) هستند

عناصری که شامل یک یا چندین عناصر فرزند هستند، با نام عناصر فرزند در گوشه‌های گرد اعلان میشوند:

<!ELEMENT 元素名称 (子元素名称 1)>

یا

<!ELEMENT 元素名称 (子元素名称 1,子元素名称 2,...)>

مثال:

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

وقتی عناصر فرزند به ترتیب توسط کاما جدا میشوند، این عناصر باید به همان ترتیب در مستند ظاهر شوند. در یک اعلان کامل، عناصر فرزند باید اعلان شوند و عناصر فرزند نیز میتوانند عناصر فرزند داشته باشند. اعلان کامل عناصر "note" است:

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

اعلان عناصر که فقط یک بار ظاهر میشوند

<!ELEMENT 元素名称 (子元素名称)>

مثال:

<!ELEMENT note (message)>

مثال بالا اعلان میکند: عناصر فرزند message باید یک بار ظاهر شوند و فقط در عناصر "note" ظاهر شوند.

اعلان عناصر که حداقل یک بار ظاهر میشوند

<!ELEMENT 元素名称 (子元素名称+)>

مثال:

<!ELEMENT note (message+)>

علامت جمع در مثال بالا اعلان میکند: عناصر فرزند message باید حداقل یک بار در عناصر "note" ظاهر شوند.

اعلان عناصر که صفر یا چندین بار ظاهر میشوند

<!ELEMENT 元素名称 (子元素名称*)>

مثال:

<!ELEMENT note (message*)>

علامت ستاره در مثال بالا اعلان میکند: عناصر فرزند message میتوانند در عناصر "note" صفر یا چندین بار ظاهر شوند.

اعلان عناصر که صفر یا یک بار ظاهر میشوند

<!ELEMENT 元素名称 (子元素名称?)>

مثال:

<!ELEMENT note (message?)>

علامت سوال در مثال بالا اعلان میکند: عناصر فرزند message میتوانند در عناصر "note" صفر یا یک بار ظاهر شوند.

اعلان محتوای نوع "نه.../یا..."

مثال:

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

مثال بالا اعلان میکند: عناصر "note" باید شامل عناصر "to", "from", "header" و همچنین عناصر غیر "message" که "body" باشد، باشند.

محتوای ترکیبی را اعلام می‌کند

مثال:

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

مثال بالا این را بیان می‌کند: "عنصر note" می‌تواند PCDATA، "to"، "from"، "header" یا "message" را صفر یا بیشتر شامل شود.