Кіріспе

SGML отбасылық таңбалау тілі үшін құжат түрін анықтайтын таңбалау декларацияларының жиынтығы. Document type definition (DTD) – SGML отбасылық таңбалау тілі (GML, SGML, XML, HTML) үшін құжат түрін анықтайтын таңбалау декларацияларының жиынтығын қамтитын спецификациялық файл. DTD спецификациялық файлын құжаттарды тексеру үшін пайдалануға болады. DTD XML құжатының жарамды құрылымдық элементтерін анықтайды. Ол құжат құрылымын расталған элементтер мен атрибуттар тізімі арқылы анықтайды. DTD XML құжатының ішінде немесе сыртқы сілтеме ретінде жариялануы мүмкін. DTD-нің атау кеңістігін қолдайтын нұсқасы ISO DSDL-дің 9-бөлігі ретінде әзірленуде. DTD-лер арнайы жариялау таңбаларын қажет ететін қосымшаларда сақталады, мысалы, XML және HTML таңбалар тізімдері, олар ISO SGML стандартының бір бөлігі ретінде анықталған үлкен жиынтықтардан шығарылған. XML SGML DTD-нің бір бөлігін пайдаланады. Дегенмен, жаңа XML атау кеңістігін қолдайтын схема тілдері (мысалы, W3C XML Schema және ISO RELAX NG) XML құрылымын тексерудің тиімді әдісі ретінде DTD-ні ығыстырды.

Таңбалау декларациялары

DTD-лер элементтер мен атрибуттар тізімі туралы мәлімдемелер арқылы құжаттар класының құрылымын сипаттайды. Элементтер туралы мәлімдемелер құжаттағы рұқсат етілген элементтер жиынтығын атайды және әрбір элементте жарияланған элементтер мен мәтіндік деректер тізбектері болуы мүмкін бе және қалай болатынын көрсетеді. Атрибут тізімі туралы мәлімдемелер әрбір жарияланған элемент үшін рұқсат етілген атрибуттар жиынтығын, соның ішінде әрбір атрибут мәнінің типін, егер жарамды мәндердің нақты жиынтығы болмаса, анықтайды. DTD белгілеу мәлімдемелері XML құжаттарының тиісті класының құрылымында қандай элемент түрлері, атрибут тізімдері, нысандар және нотациялар рұқсат етілетінін жариялайды.

Қауіпсіздік

XML DTD-ді экспоненциалды түрде кеңейтілетін ішкі тізімдерді анықтау арқылы немесе XML талдағышын ешқашан жауап бермейтін сыртқы ресурсқа бағыттап, қызметтен бас тарту (DoS) шабуылын ұйымдастыруға болады. Осы себепті, .NET Framework DTD талдауын тоқтатуға немесе оны өткізіп жіберуге мүмкіндік беретін қасиетті ұсынады, ал Microsoft Office қолданбаларының жаңа нұсқалары (Microsoft Office 2010 және одан кейінгілері) DTD жарияланымдарын қамтитын XML файлдарын ашпайды.