آموزش 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 to      (#PCDATA)
  !ELEMENT from    (#PCDATA)
  !ELEMENT heading (#PCDATA)
  !ELEMENT body    (#PCDATA)
]>
<note>
  <to>جورج</to>
  <from>جان</from>
  <heading>پیشنهاد</heading>
  <body>نفرامند از جلسه!</body>
</note>

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

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

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

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

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

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

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

!ELEMENT body (خط هفتم) تعریف body عنصر به نوع "#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 برای تأیید داده‌های خود استفاده کنید.