DTD (XML DTD)
اینجا با «DTD» آشنا می شوی. DTD یعنی «تعریف نوع سند (Document Type Definition)». با DTD، ساختار XML را دقیق تعریف می کنی؛ مثل برنامه کلاس که می گوید چه درس هایی اجباری اند.
DTD چیست؟
DTD ساختار، عناصر مجاز، و ویژگی های مجاز را تعریف می کند. بنابراین، برنامه ها می فهمند سند صحیح است یا نه. مثل قوانین بازی که حرکات درست را مشخص می کند.
سند معتبر با DTD
سند «Valid» هم خوش ساخت است، هم مطابق قوانین DTD. در مثال زیر، DOCTYPE به فایل DTD اشاره می کند.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE note SYSTEM "Note.dtd">
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
نکته: DOCTYPE به برنامه می گوید قوانین کجا هستند. سپس سند با آن قوانین سنجیده می شود.
نمونه DTD برای note
این DTD می گوید ریشه note است و داخلش چهار عنصر مشخص قرار دارد.
<!DOCTYPE note
[
<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>
]>
نکته: #PCDATA یعنی «متن قابل تحلیل»؛ یعنی داخل عنصر متن معمولی می آید.
تعریف Entity در DTD
می توانی کاراکترها یا رشته های تکراری را به صورت «Entity» تعریف کنی. سپس با نام آن، بارها استفاده کنی؛ مثل میانبرهای کیبورد.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE note [
<!ENTITY nbsp " ">
<!ENTITY writer "Writer: Donald Duck.">
<!ENTITY copyright "Copyright: W3Schools.">
]>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
<footer>&writer; ©right;</footer>
</note>
نکته: هر Entity با & شروع می شود و با ; تمام می شود. نامش وسط است.
کی از DTD استفاده کنم؟
وقتی چند تیم باید قالب مشترک داشته باشند، DTD عالی است. همچنین برای اعتبارسنجی داده دریافتی از بیرون، مفید و ساده است.
کی از DTD استفاده نکنم؟
XML اجباری به DTD ندارد. برای فایل های کوچک یا آزمایش سریع، وقت گیر است. در توسعه پویا، صبر کن تا ساختار تثبیت شود.
برای بررسی نگارش، سر بزن به اعتبارسنج XML. برای تعریف های پیشرفته تر، XML Schema را ببین. همچنین درباره DTD بیشتر بخوان.
گام های تمرینی سریع
- یک سند ساده note بساز.
- فایل DTD مانند نمونه تهیه کن.
- DOCTYPE را به XML اضافه کن.
- با اعتبارسنج، سند را بررسی کن.
جمع بندی سریع
- DTD قوانین ساختار XML را تعریف می کند.
- Valid یعنی خوش ساخت و مطابق DTD.
- Entity ها میانبر رشته ها هستند.
- برای استانداردسازی تیمی، DTD عالی است.