تعریف نوع سند

یک تعریف نوع سند  با کوته‌نوشت دی‌تی‌دی (DTD) مجموعه‌ای از اعلامیه‌های نشانه‌گذاری است که نوع سند را برای خانواده ی زبان نشانه‌گذاری SGML (که شامل GML، SGML، XML و HTML هستند) تعیین می کند.

یک DTD در یک سند XML، یک «بلوک ساختاری مجاز» را تعریف می کند. DTD ساختار سند را به وسیله ی لیستی از عناصر مجاز شناخته شده و ویژگی های آن عناصر تعریف می کند. DTD را می توان در داخل یک سند XML، یا به صورت یک ارجاع بیرونی تعریف کرد.

XML از زیرمجموعه ای از SGML DTD ها استفاده می کند.

در سال 2009، DTD ها توسط زبان‌های طرح‌واره‌نویسی مطلع از فضای نام XML (مثل W3C XML Schema و ISO RELAX NG)، به صورت گسترده جایگزین سازی گردید. یک نسخه ی مطلع از فضای نام DTD به صورت بخش نهم از ISO  DSDL  توسعه داده شد. DTD روی کاربردهایی که نیاز به نویسه های انتشاری بخصوص، مثل ارجاع های موجودیت نویسه ی XML و HTML نیاز دارد،تاکید دارد. این نیازهای تاکید شده از مجموعه های بزرگتر که به صورت بخشی از کوشش استاندارد ISO SGML تعریف شده است، گرفته شده است.

تعریف نوع سند یا دی‌تی‌دی (Document Type Definition - DTD) وظیفه افزایش نوعی گرامر و دستور زبان بر روی اسناد اکس‌ام‌ال را بر عهده می‌گیرد. XML Schema وسیلهٔ دیگری ست که همان کار را انجام می‌دهد ولی برای سندهای نسبتاً پیچیده‌تر.

هر چند آزادی تام و بی قید و شرط در انتخاب نام‌های المان‌ها و صفات مربوطه آن‌ها و نیز سایر ویژگی‌ها موجبات گسترش پذیری و قابلیت انعطاف فراوان را سبب می‌شود همین امر می‌تواند اسباب بروز تناقضات و اشتباهات ناخواسته و بدون کنترل هم باشد.

به منظور آشکارایی بیشتر در بیان نقش پراهمیت دی‌تی‌دی به ذکر یک مثال می‌پردازیم. چنانچه یکی از برچسب‌های <Department> را به اشتباه <Dpartment> نوشته باشیم، متن شکن اکس‌ام‌ال راهی برای تشخیص این خطا نخواهد داشت. با افزودن دی‌تی‌دی بر این سند اکس‌ام‌ال و با شرح نوع و نام المان‌های مورد انتظار در آن از بروز اینگونه خطاها جلوگیری خواهد شد.

 <University>
 Mathematics
 <Dpartment>Biology</<span style="color:orange;">Dpartment</font\>>
 </University>

 جستارهای وابسته 
 طرح‌واره اکس‌ام‌ال

 منابع 

 اکس‌ام‌ال: چگونه آنرا برنامه‌نویسی کنیم (انگلیسی)
 راهنمای اکس‌ام‌ال (انگلیسی)

رده:استانداردهای اکس‌ام‌ال-مبنا
رده:زبان‌های نشانه‌گذاری