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 نام_عنصر (نام_زیرعنصر*)>

ستاره مثال بالا نشان می‌دهد: عناصر "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" باشند.