مقدمة به DTD

تعریف نوع مستند (DTD) می‌تواند ساختار مستندات XML معتبر را تعریف کند. آن از مجموعه‌ای از عناصر معتبر برای تعریف ساختار مستند استفاده می‌کند.

DTD می‌تواند به صورت خطی در مستند XML قرار گیرد یا به عنوان یک ارجاع خارجی باشد.

اعلان DOCTYPE داخلی

اگر DTD در داخل فایل منبع XML قرار دارد، باید با استفاده از زبان زیر در یک اعلان DOCTYPE بسته شود:

!DOCTYPE عنصر ریشه [تعریف عناصر]

مثال مستند XML با DTD (لطفاً در نسخه IE5 و بالاتر باز کنید و دستور "منبع کد مشاهده شود" را انتخاب کنید):

<?xml version="1.0"?>
!DOCTYPE note [
  <!ELEMENT note (to,from,heading,body)>
  !ELEMENT به      (#PCDATA)>
  !ELEMENT از    (#PCDATA)>
  <!ELEMENT heading (#PCDATA)>
  !ELEMENT بد    (#PCDATA)>
]>
<note>
  <to>جرج</to>
  <from>جان</from>
  <heading> یادآوری</heading>
  <body>نفراموشی جلسه!</body>
</note>

این فایل XML را در مرورگر خود باز کنید و دستور "منبع کد مشاهده شود" را انتخاب کنید.

توضیح DTD بالا به شرح زیر است:

!DOCTYPE note [ (در سطر دوم) این مستند را تعریف می‌کند که این مستند است note نوع مستند.

!ELEMENT note (در سطر سوم) تعریف note عنصر چهار عنصر دارد: "به، از، heading، بد"

!ELEMENT به (در سطر چهارم) تعریف به عنصر به نوع "#PCDATA" است

!ELEMENT از (در سطر پنجم) تعریف از عنصر به نوع "#PCDATA" است

!ELEMENT heading (در سطر ششم) تعریف heading عنصر به نوع "#PCDATA" است

!ELEMENT بد (در سطر هفتم) تعریف بد عنصر به نوع "#PCDATA" است

اعلان مستند خارجی

اگر DTD در خارج از فایل منبع XML قرار دارد، باید در یک تعریف DOCTYPE با استفاده از زبان زیر بسته شود:

<!DOCTYPE ریشه SYSTEM "نام فایل">

این مستند XML با مستند XML بالا مشابه است، اما دارای یک DTD خارجی است: (در IE5 باز کنید، و دستور "منبع نمایش داده شود" را انتخاب کنید.).

<?xml version="1.0"?>
<!DOCTYPE note SYSTEM "note.dtd">
<note>
<to>جرج</to>
<from>جان</from>
<heading> یادآوری</heading>
<body>نفراموشی جلسه!</body>
</note>

این فایل "note.dtd" شامل DTD است:

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

چرا از DTD استفاده می‌کنیم؟

با استفاده از DTD، هر فایل XML شما می‌تواند یک توصیفی از قالب خود را حمل کند.

با استفاده از DTD، گروه‌های مستقل می‌توانند با یک DTD استاندارد برای تبادل داده‌ها به طور یکسان استفاده کنند.

و برنامه شما نیز می‌تواند از یک DTD استاندارد برای تأیید داده‌هایی که از خارج دریافت می‌کند، استفاده کند.

شما همچنین می‌توانید از DTD برای تأیید داده‌های خود استفاده کنید.