डाक्यूमेंट टाइप डिक्लेरेशन

डॉक्यूमेंट प्रकार की स्टेटमेंट या डाॅकटाइप इस प्रकार के निर्देश है जो विशेषतः एक्सएमएल या एसजीएमएल डॉक्यूमेंट जैसे उदाहरण के लिए, वेब पेज को डॉक्यूमेंट प्रकार की परिभाषा जैसे डीटीडी से जोड़ता है, उदाहरण के लिए एचटीएमएल के विशेष संस्करण की औपचारिक परिभाषा एचटीएमएल 2.0 - 4.0 इसका प्रमुख उदाहरण हैं। इस प्रकार डॉक्यूमेंट के क्रमबद्ध रूप में यह मार्कअप भाषा को इस प्रकार की छोटी स्ट्रिंग के रूप में प्रकट करने में सहायता प्रदान करता है जो विशेष प्रारूप के अनुरूप रहता है।

आधुनिक वेब ब्राउज़र में एचटीएमएल ब्राउज़र इंजन डाॅकटाइप स्नीफिंग या स्विचिंग करते हैं, जिसमें डॉक्यूमेंट में डाॅकटाइप के रूप में कार्य किया जाता है, इसके आधार पर  लेआउट मोड निर्धारित करता है, जैसे विचित्र मोड या मानक मोड इत्यादि। इस प्रकार   एचटीएमएल5 का क्रमांकन, जो एसजीएमएल-आधारित नहीं है, केवल मोड चयन के लिए डाॅकटाइप का उपयोग करता है। चूंकि वेब ब्राउज़र सामान्य-उद्देश्य वाले डीटीडी-आधारित पार्सर्स के अतिरिक्त विशेष-उद्देश्य वाले एचटीएमएल पार्सर्स के साथ कार्यान्वित किए जाते हैं, इसलिए इस प्रकार के डीटीडीs का उपयोग नहीं करते हैं और इसके लिए प्राप्त होने वाले URL प्रदान किए जाने पर भी उन तक कभी भी पहुंच नहीं पाते हैं। इसके आधार पर डाॅकटाइप को एचटीएमएल5 में अधिकांशतः आवश्यक हेडर के रूप में बनाए रखा जाता है, जो सामान्य ब्राउज़रों में मानक मोड को ट्रिगर करने के लिए होता है।

प्रारूप
डॉक्यूमेंट प्रकार की स्टेटमेंट के लिए सामान्य प्रारूप इस प्रकार है:

या

डॉक्यूमेंट प्रकार का नाम
<!DOCTYPE प्रारूप के बाद इसे मुख्य प्रारूप से अलग कर दिया जाता है जैसे रिक्त स्थान,  या (एक्सएमएल को छोड़कर) टिप्पणियों को दोगुने हाइफन-ऋण द्वारा खोला और बंद कर दिया जाता हैं,  इसके पश्चात डॉक्यूमेंट प्रकार का नाम  अर्थात मूल एलिमेंट का नाम जो डीटीडी से उतरने वाले पेड़ों पर लागू होता है। इसके आधार पर एक्सएमएल में, मूल एलिमेंट जो डॉक्यूमेंट का प्रतिनिधित्व करता है, डॉक्यूमेंट में पहला एलिमेंट है। उदाहरण के लिए, एक्सएचटीएमएल में, मूल एलिमेंट है, इस प्रकार पहला एलिमेंट ओपेन किया जाता है, डॉकटाइप स्टेटमेंट  के बाद इसो बंद कर दिया जाता हैं।

चूंकि बाहरी पहचानकर्ता और आंतरिक उपसमुच्चय दोनों वैकल्पिक हैं, डॉक्यूमेंट प्रकार का नाम ही एकमात्र सूचना है जिसे डाॅकटाइप स्टेटमेंट में देना अनिवार्य है।

एक्सटर्नल आइडेंटिफायर
डाॅकटाइप स्टेटमेंट में वैकल्पिक रूप से एसजीएमएल में औपचारिक सार्वजनिक पहचानकर्ता और सिस्टम पहचानकर्ता सम्मिलित हो सकते हैं, मूल एलिमेंट नाम और रिक्त स्थान जैसे प्रारूप को अलग करने के पश्चात किसी भी आंतरिक उपसमुच्चय से पहले इसका उपयोग करते हैं। इस प्रकार यह या तो कीवर्ड से प्रारंभ होता है, या इसके अतिरिक्त SYSTEM या कीवर्ड PUBLIC,  यह निर्दिष्ट करना कि क्या डीटीडी को सार्वजनिक पहचानकर्ता का उपयोग करके निर्दिष्ट किया जाता है, जो इसे सार्वजनिक पाठ के रूप में पहचानता है, अर्थात कई कंप्यूटर सिस्टम के बीच साझा किया गया है (भले ही यह आम जनता के लिए उपलब्ध उपलब्ध सार्वजनिक पाठ है, या अनुपलब्ध सार्वजनिक पाठ केवल के भीतर साझा किया गया है।  इस प्रकार यदि सार्वजनिक कीवर्ड का उपयोग किया जाता है, तो इसके पश्चात दोहरे या एकल ASCII उद्धरण चिह्नों में संलग्न सार्वजनिक पहचानकर्ता होता है। इस प्रकार सार्वजनिक पहचानकर्ता भंडारण स्थान की ओर इंगित नहीं करता है, बल्कि विशिष्ट निश्चित स्ट्रिंग है जिसे तालिका में देखा जा सकता है (जैसे एसजीएमएल कैटलॉग);  चूंकि, कुछ (अपितु सभी नहीं) एसजीएमएल प्रोफाइल में, सार्वजनिक पहचानकर्ता को औपचारिक सार्वजनिक पहचानकर्ता (एफपीआई) नामक विशेष प्रारूप का उपयोग करके बनाया जाना चाहिए, जो इसके अधिकार को निर्दिष्ट करता है और यह भी बताता है कि यह पब्लिक के लिए उपलब्ध है या नहीं इसे भी प्रतिउत्तर में देखा जाता हैं।

सार्वजनिक पहचानकर्ता यदि सम्मिलित है या SYSTEM कीवर्ड प्रयुक्त होता है और, एक्सएमएल के लिए इसे अवश्य ही सिस्टम आइडेंटिफ़ायर द्वारा अनुसरण किया जाना आवश्यक होता हैं, जो इसी प्रकार उद्धरण चिह्नों से संलग्न होता है। चूंकि इस प्रकार की सामान्य एसजीएमएल में सिस्टम पहचानकर्ताओं की व्याख्या पूर्ण रूप से सिस्टम पर निर्भर रहता है,और फ़ाइल नाम, डेटाबेस कुंजी, ऑफ़सेट, या कुछ और हो सकती है, इस प्रकार एक्सएमएल के लिए आवश्यक है कि वे URL उपलब्ध हों, उदाहरण के लिए, एक्सएचटीएमएल 1.1 के लिए FPI है "-//W3C//DTD XHTML 1.1//EN" और, आवश्यकताओं के आधार पर एक्सएचटीएमएल 1.1 के लिए 3 संभावित सिस्टम पहचानकर्ता उपलब्ध हैं। उनमें से URL संदर्भ है "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" इसका अर्थ यह है कि एक्सएमएल पार्सर को डीटीडी को सिस्टम विशिष्ट प्रक्रिया में ढूंढना चाहिए, इस स्थिति में डबल कोट चिह्नों में संलग्न डीटीडी के यूआरएल संदर्भ के माध्यम से उपयुक्त होता हैं।

एक्सएचटीएमएल डॉक्यूमेंटों में, डाॅकटाइप स्टेटमेंट को सदैव सिस्टम पहचानकर्ता को स्पष्ट रूप से निर्दिष्ट करना चाहिए। दूसरी ओर एचटीएमएल जैसे एसजीएमएल-आधारित डॉक्यूमेंटों में, दिए गए सार्वजनिक पहचानकर्ता से स्वचालित रूप से उपयुक्त सिस्टम पहचानकर्ता का अनुमान लगाया जा सकता है। इस प्रकार यह मुख्य रूप से उदाहरण के लिए एफपीआई को सिस्टम आइडेंटिफ़ायर में हल करने वाली कैटलॉग फ़ाइल के माध्यम से किया जाना चाहिए। {{code|SYSTEM}EM}} कीवर्ड (एक्सएमएल को छोड़कर) का उपयोग सिस्टम पहचानकर्ता के बिना भी किया जा सकता है, यह दर्शाता है कि डीटीडी सम्मिलित है अपितु डॉक्यूमेंट प्रकार के नाम से अनुमान लगाया जाना चाहिए।

आंतरिक सबसेट
डाॅकटाइप स्टेटमेंट का अंतिम, वैकल्पिक, भाग शाब्दिक वर्ग कोष्ठकों ([]) से घिरा हुआ है, और इसको आंतरिक उपसमुच्चय कहा जाता है। इसका उपयोग Document_type_definition#Markup स्टेटमेंटओं को जोड़ने/संपादित करने या सार्वजनिक कीवर्ड व्यवहारों को जोड़ने/संपादित करने के लिए किया जा सकता है। इस प्रकार यह संभव है, अपितु असामान्य है, इसके कारण यह पूरे डीटीडी इन-लाइन को डॉक्यूमेंट में, आंतरिक उपसमुच्चय के भीतर, बाहरी फ़ाइल से संदर्भित करने के अतिरिक्त सम्मिलित किया जाता हैं। इसके विपरीत, आंतरिक उपसमुच्चय को कभी-कभी साधारण एसजीएमएल प्रोफाइलों में वर्जित किया जाता है, विशेष रूप से यह मौलिक रूप से एचटीएमएल पार्सर्स के लिए जो पूर्ण एसजीएमएल पार्सर को लागू नहीं करते हैं।

यदि आंतरिक डीटीडी सबसेट और बाहरी पहचानकर्ता दोनों को डाॅकटाइप स्टेटमेंट में सम्मिलित किया जाता है, तो आंतरिक सबसेट को पहले संसाधित किया जाता है, और इस प्रकार बाहरी डीटीडी सबसेट को इस प्रकार माना जाता है जैसे कि इसे आंतरिक सबसेट के अंत में सम्मिलित किया गया हो। चूँकि इस प्रकार पहले की परिभाषाएँ डीटीडी में बाद की परिभाषाओं पर वरीयता लेती हैं, इस प्रकार यह आंतरिक सबसेट को बाहरी सबसेट में परिभाषाओं को ओवरराइड करने की अनुमति देती है।

उदाहरण
वर्ल्ड वाइड वेब पेज की पहली पंक्ति निम्नानुसार पढ़ी जा सकती है:

एक्सएचटीएमएल के लिए इस डॉक्यूमेंट प्रकार की स्टेटमेंट में डीटीडी का संदर्भ सम्मिलित है, जिसका सार्वजनिक पहचानकर्ता है  और जिसका सिस्टम आइडेंटिफायर है   संदर्भित बाहरी इकाई का पता लगाने के लिए इकाई रिज़ॉल्वर या तो पहचानकर्ता का उपयोग कर सकता है। इस उदाहरण या अगले उदाहरण में कोई आंतरिक उपसमुच्चय नहीं दर्शाया गया है। इस प्रकार मूल एलिमेंट घोषित किया गया है   और, इसलिए यह इस उदाहरण में और अगले वाले भी doctype स्टेटमेंट के अंत के बाद खोला जाने वाला पहला टैग है। इस प्रकार एचटीएमएल टैग डाॅकटाइप स्टेटमेंट का हिस्सा नहीं है, अपितु इस प्रकार अभिविन्यास उद्देश्यों के लिए उदाहरणों में सम्मिलित किया गया है।

सामान्य डीटीडी
कुछ सामान्य डीटीडी को सूचियों में डाल दिया गया है। इस प्रकार W3C ने वेब में सामान्यतः उपयोग किए जाने वाले डीटीडीs की सूची तैयार की है, जिसमें नंगे एचटीएमएल5 डीटीडी, पुराने एक्सएचटीएमएल/एचटीएमएल डीटीडी, सामान्य एम्बेडेड एक्सएमएल पर आधारित स्वरूपों के डीटीडी जैसे मैथ एमएल और स्केलेबल वेक्टर ग्राफिक्स के साथ-साथ मिश्रित डॉक्यूमेंट सम्मिलित हैं जो उन स्वरूपों को जोड़ते हैं। इस प्रकार W3C एचटीएमएल5 और इसके संबंधित वाटडब्ल्यूजी संस्करण दोनों ही ब्राउज़रों को केवल कुछ एफपीआई के एक्सएचटीएमएल डीटीडी को स्वीकार करने और बाहरी डीटीडी फ़ाइलों को लाने पर आंतरिक तर्क का उपयोग करने को प्राथमिकता देने का विचार रखते हैं। इस प्रकार यह आगे एक्सएचटीएमएल के लिए आंतरिक डीटीडी निर्दिष्ट करता है, जो केवल इस प्रकार एचटीएमएल इकाई नामों की सूची है।

एचटीएमएल 4.01 डीटीडी
सख्त डीटीडी प्रस्तुतिकरण मार्कअप को इस तर्क के साथ अनुमति नहीं देता है कि इसके अतिरिक्त कैस्केडिंग स्टाइल शीट्स का उपयोग किया जाना चाहिए। इसके कारण डीटीडी को इस प्रकार प्रदर्शित करते है: <!DOCTYPE HTML public -//W3C//DTD HTML 4.01//EN http://www.w3.org/TR/html4/strict.डीटीडी >  संक्रमणकालीन डीटीडी कुछ पुराने पब्लिक और विशेषताओं को अनुमति देता है जिन्हें बहिष्कृत कर दिया गया है: <!DOCTYPE HTML Public -//W3C//DTD HTML 4.01 Transitional//EN http://www.w3.org/TR/html4/loose.DTD >  यदि फ़्रेमिंग (वर्ल्ड वाइड वेब) का उपयोग किया जाता है, तो इसके अतिरिक्त फ़्रेमसेट डीटीडी का उपयोग किया जाना चाहिए, जैसे: <!DOCTYPE HTML Public -//W3C//DTD HTML 4.01 frameset//EN http://www.w3.org/TR/html4/frameset.DTD > 

एक्सएचटीएमएल 1.0 डीटीडी
एक्सएचटीएमएल के डीटीडी भी संक्रमणकालीन और फ्रेमसेट हैं।

एक्सएचटीएमएल डीटीडी मुख्य रूप से बहिष्कृत टैग द्वारा समर्थित नहीं होती हैं और इस प्रकार कोड को एक्सएमएल विशिष्टता के अनुसार सही ढंग से लिखा जाना चाहिए।

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" " http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.DTD ">

 एक्सएचटीएमएल ट्रांजिशनल डीटीडी एक्सएचटीएमएल डीटीडी केसमान है, अपितु इसके लिए doctype html टैग की अनुमति लेते है।  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.DTD ">

 एक्सएचटीएमएल फ्रेमसेट डीटीडी एकमात्र एक्सएचटीएमएल डीटीडी है जो फ्रेमसेट का समर्थन करता है। यहाँ पर डीटीडी नीचे है।  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" " http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.DTD ">



एक्सएचटीएमएल 1.1 डीटीडी
एक्सएचटीएमएल 1.1 एक्सएचटीएमएल का सबसे वर्तमान अंतिम संशोधन है, जो एक्सएचटीएमएल मॉड्यूलरीकरण के लिए समर्थन प्रस्तुत करता है। इस प्रकार एक्सएचटीएमएल 1.1 में एक्सएचटीएमएल 1.0 स्ट्रिक्ट की कठोरता है।

एक्सएचटीएमएल बेसिक डीटीडी
एक्सएचटीएमएल बेसिक 1.0

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN"

" http://www.w3.org/TR/xhtml-basic/xhtml-basic10.DTD "> XHTML Basic 1.1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.1//EN"

" http://www.w3.org/TR/xhtml-basic/xhtml-basic11.DTD ">

एचटीएमएल5 डीटीडी-रहित डाॅकटाइप
एचटीएमएल5 का उपयोग करता है  यूआरएल या एफपीआई के रूप में डीटीडी के संदर्भ में इसकी कमी के कारण स्टेटमेंट बहुत कम है। इसमें केवल डॉक्यूमेंट के मूल एलिमेंट का टैग   है,  विनिर्देशन के शब्दों में इसे इस प्रकार लिख सकते हैं:

, case-insensitively.

यूआरआई या एफपीआई स्ट्रिंग की कमी के अपवाद के साथ एफपीआई स्ट्रिंग को वैधकर्ताओं द्वारा संवेदनशील रूप से केस माना जाता है, यह प्रारूप स्ट्रिंग का केस असंवेदनशील संयोजन  वही है जो इस प्रकार एसजीएमएल पर आधारित एचटीएमएल 4.01 के प्रारूप में पाया जाता है, इस प्रकार   एचटीएमएल4 और एचटीएमएल5 दोनों में औपचारिक प्रारूप को अपर केस लेटर्स में परिभाषित किया गया है, इस प्रकार भले ही लोअर केस और लोअर केस अपर केस के मिश्रण को भी वैध माना जाता है।

एक्सएचटीएमएल5 5 में  स्ट्रिंग का केस-संवेदी संयोजन होना चाहिए, इसके आधार पर <!DOCTYPE html> इस प्रकार हैं कि एक्सएचटीएमएल प्रारूप में सभी एचटीएमएल एलिमेंट नामों को निचले स्थिति में होना आवश्यक है, जिसमें एचटीएमएल 5 के अंदर संदर्भित मौलिक एलिमेंट भी सम्मिलित है। इस प्रकार. एक्सएचटीएमएल5 में वैकल्पिक है और बस छोड़ा जा सकता है। चूंकि, यदि मार्कअप को बहुभाषाविद मार्कअप होना है, तो डाॅकटाइप का उपयोग किया जाना चाहिए।

यह भी देखें

 * डॉक्यूमेंट प्रकार की परिभाषा में डॉक्यूमेंट प्रकार की परिभाषा का उदाहरण सम्मिलित हैं।
 * आरडीएफए
 * एक्सएमएल स्कीमा

बाहरी संबंध

 * HTML Doctype overview
 * Recommended डीटीडीs to use in your Web document - an informative (not normative) W3C Quality Assurance publication
 * DOCTYPE grid - another overview table [Last modified 27 November 2006]
 * Quirks mode and transitional mode
 * Box model tweaking