DTD XML

مستندات XML با گرامر صحیح به عنوان «قابل‌خوانی» شناخته می‌شوند.

مستندات XML که بر اساس DTD بررسی شده‌اند، هم باید «قابل‌خوانی» باشند و هم باید «مستندات موثر» باشند.

DTD چیست؟

DTD برای تعریف نوع مستند (Document Type Definition) استفاده می‌شود.

DTD ساختار مستند XML و عناصر و ویژگی‌های مجاز را تعریف می‌کند.

مستندات موثر XML

مستند XML "مستندات موثر" هم باید «قابل‌خوانی» باشد و همچنین باید با قوانین DTD سازگار باشد:

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

توصیف DOCTYPE بالا شامل ارجاع به فایل DTD است. در زیر محتوای فایل DTD را نمایش می‌دهم و توضیح می‌دهم.

DTD XML

DTD هدف تعریف ساختار مستند XML و عناصر و ویژگی‌های مجاز است:

Note.dtd:

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

توضیح زیر برای 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 - بدنه عناصر را به نوع "#PCDATA" تبدیل می‌کند

توضیح:#PCDATA نشان‌دهنده داده‌های قابل تحلیل (parseable character data) است.

استفاده از DTD برای اعلام مجموعه‌ها

اعلام DTD نیز می‌تواند برای تعریف کاراکترهای خاص یا رشته‌های موجود در مستند استفاده شود:

مثال

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE note [
<!ENTITY nbsp "ـ">
<!ENTITY writer "Writer: Bill Gates.">
<!ENTITY copyright "Copyright: CodeW3C.com.">
]>
<note>
<to>George</to>
<from>John</from>
<heading>یادآوری</heading>
<body>نفراموش کنید جلسه!</body>
<footer>&writer; ©right;</footer>
</note>

توضیح:مجموعه‌ای از سه بخش تشکیل شده است: با علامت وابستگی (&) شروع می‌شود، سپس نام مجموعه آمده و در نهایت با ویرگول (;) پایان می‌یابد.

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

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

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

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

اگر می‌خواهید DTD را یاد بگیرید، لطفاً منابع ما را بخوانید. آموزش DTD.

در چه مواقعی از DTD استفاده نمی‌شود؟

برای XML، DTD ضروری نیست.

اگر شما در حال تست XML هستید یا از یک فایل XML کوچک استفاده می‌کنید، ایجاد DTD ممکن است زمان‌بر باشد.

اگر شما در حال توسعه یک برنامه هستید، منتظر stabیل‌شدن استانداردها شوید تا DTD را اضافه کنید. در غیر این صورت، نرم‌افزار شما ممکن است به دلیل خطاهای تأیید متوقف شود.