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

From Vigyanwiki

डॉक्यूमेंट प्रकार की घोषणा या DOCTYPE ऐसे निर्देश है जो विशेष XML या SGML डॉक्यूमेंट (उदाहरण के लिए, वेब पृष्ठ ) को डॉक्यूमेंट प्रकार की परिभाषा (DTD) के साथ जोड़ता है, उदाहरण के लिए, HTML के विशेष संस्करण की औपचारिक परिभाषा। HTML 2.0 - 4.0 इसका प्रमुख उदाहरण हैं।[1] इस प्रकार डॉक्यूमेंट के क्रमबद्ध रूप में, यह मार्कअप भाषा की छोटी स्ट्रिंग के रूप में प्रकट होता है जो विशेष प्रारूप के अनुरूप होता है।

आधुनिक वेब ब्राउज़र में HTML ब्राउज़र इंजन DOCTYPE स्नीफिंग या स्विचिंग करते हैं, जिसमें डॉक्यूमेंट में DOCTYPE के रूप में कार्य किया जाता है, इसके आधार पर text/html लेआउट मोड निर्धारित करता है, जैसे विचित्र मोड या मानक मोड इत्यादि। इस प्रकार text/html HTML5 का क्रमांकन, जो SGML-आधारित नहीं है, केवल मोड चयन के लिए DOCTYPE का उपयोग करता है। चूंकि वेब ब्राउज़र सामान्य-उद्देश्य वाले DTD-आधारित पार्सर्स के अतिरिक्त विशेष-उद्देश्य वाले HTML पार्सर्स के साथ कार्यान्वित किए जाते हैं, इसलिए वे DTDs का उपयोग नहीं करते हैं और URL प्रदान किए जाने पर भी उन तक कभी भी पहुंच नहीं पाते हैं। इसके आधार पर DOCTYPE को HTML5 में अधिकांशतः अपितु आवश्यक हेडर के रूप में बनाए रखा जाता है, जो सामान्य ब्राउज़रों में मानक मोड को ट्रिगर करने के लिए होता है।[2]

प्रारूप

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

<!DOCTYPE root-element PUBLIC "/quotedFPI/" "/quotedURI/" [ 
<!-- internal subset declarations -->
]>

या

<!DOCTYPE root-element SYSTEM "/quotedURI/" [ 
<!-- internal subset declarations -->
]>

डॉक्यूमेंट प्रकार का नाम

<!DOCTYPE प्रारूप के बाद इसे मुख्य प्रारूप से अलग कर दिया जाता है[3]: 403–404  जैसे रिक्त स्थान,[3]: 297–298, 372  या (XML को छोड़कर) टिप्पणियों को दोगुने हाइफन-ऋण द्वारा खोला और बंद कर दिया जाता हैं,[3]: 372, 391  इसके पश्चात डॉक्यूमेंट प्रकार का नाम[3]: 403–404  अर्थात मूल एलिमेंट का नाम जो डीटीडी से उतरने वाले पेड़ों पर लागू होता है। इसके आधार पर XML में, मूल एलिमेंट जो डॉक्यूमेंट का प्रतिनिधित्व करता है, डॉक्यूमेंट में पहला एलिमेंट है। उदाहरण के लिए, एक्सएचटीएमएल में, मूल एलिमेंट <html> है, इस प्रकार पहला एलिमेंट ओपेन किया जाता है, डॉकटाइप स्टेटमेंट के बाद इसो बंद कर दिया जाता हैं।

चूंकि बाहरी पहचानकर्ता और आंतरिक उपसमुच्चय दोनों वैकल्पिक हैं,[3]: 403–404  डॉक्यूमेंट प्रकार का नाम ही एकमात्र सूचना है जिसे DOCTYPE घोषणा में देना अनिवार्य है।

बाहरी पहचानकर्ता

DOCTYPE घोषणा में वैकल्पिक रूप से SGML में औपचारिक सार्वजनिक पहचानकर्ता सार्वजनिक पहचानकर्ता और सिस्टम पहचानकर्ता सम्मिलित हो सकते हैं, मूल एलिमेंट नाम और रिक्त स्थान जैसे प्रारूप को अलग करने के पश्चात किसी भी आंतरिक उपसमुच्चय से पहले इसका उपयोग करते हैं।[3]: 403–404  इस प्रकार यह या तो कीवर्ड से प्रारंभ होता है, या इसके अतिरिक्त SYSTEM या कीवर्ड PUBLIC,[3]: 379  यह निर्दिष्ट करना कि क्या डीटीडी को सार्वजनिक पहचानकर्ता का उपयोग करके निर्दिष्ट किया जाता है, जो इसे सार्वजनिक पाठ के रूप में पहचानता है, अर्थात कई कंप्यूटर सिस्टम के बीच साझा किया गया है (भले ही यह आम जनता के लिए उपलब्ध उपलब्ध सार्वजनिक पाठ है, या अनुपलब्ध सार्वजनिक पाठ केवल के भीतर साझा किया गया है।[3]: 180–182  इस प्रकार यदि सार्वजनिक कीवर्ड का उपयोग किया जाता है, तो इसके पश्चात दोहरे या एकल ASCII उद्धरण चिह्नों में संलग्न सार्वजनिक पहचानकर्ता होता है। इस प्रकार सार्वजनिक पहचानकर्ता भंडारण स्थान की ओर इंगित नहीं करता है, बल्कि विशिष्ट निश्चित स्ट्रिंग है जिसे तालिका में देखा जा सकता है (जैसे एसजीएमएल कैटलॉग);[3]: 180  चूंकि, कुछ (अपितु सभी नहीं) एसजीएमएल प्रोफाइल में, सार्वजनिक पहचानकर्ता को औपचारिक सार्वजनिक पहचानकर्ता (एफपीआई) नामक विशेष प्रारूप का उपयोग करके बनाया जाना चाहिए, जो मालिक को निर्दिष्ट करता है और यह भी बताता है कि यह पब्लिक के लिए उपलब्ध है या नहीं इसे भी प्रतिउत्तर में देखा जाता हैं।[3]: 182–183 

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

XHTML डॉक्यूमेंटों में, doctype घोषणा को सदैव सिस्टम पहचानकर्ता को स्पष्ट रूप से निर्दिष्ट करना चाहिए। दूसरी ओर HTML जैसे SGML-आधारित डॉक्यूमेंटों में, दिए गए सार्वजनिक पहचानकर्ता से स्वचालित रूप से उपयुक्त सिस्टम पहचानकर्ता का अनुमान लगाया जा सकता है। इस प्रकार यह मुख्य रूप से उदाहरण के लिए FPI को सिस्टम आइडेंटिफ़ायर में हल करने वाली कैटलॉग फ़ाइल के माध्यम से किया जाना चाहिए।[6] SYSTEM}EM कीवर्ड (XML को छोड़कर) का उपयोग सिस्टम पहचानकर्ता के बिना भी किया जा सकता है, यह दर्शाता है कि DTD सम्मिलित है अपितु डॉक्यूमेंट प्रकार के नाम से अनुमान लगाया जाना चाहिए।[3]: 378 

आंतरिक सबसेट

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

यदि आंतरिक DTD सबसेट और बाहरी पहचानकर्ता दोनों को DOCTYPE घोषणा में सम्मिलित किया जाता है, तो आंतरिक सबसेट को पहले संसाधित किया जाता है, और बाहरी DTD सबसेट को इस प्रकार माना जाता है जैसे कि इसे आंतरिक सबसेट के अंत में सम्मिलित किया गया हो। चूँकि पहले की परिभाषाएँ DTD में बाद की परिभाषाओं पर वरीयता लेती हैं, यह आंतरिक सबसेट को बाहरी सबसेट में परिभाषाओं को ओवरराइड करने की अनुमति देती है।[3]: 402–403 

उदाहरण

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

<!DOCTYPE html public
   -//W3C//DTD XHTML 1.0 ट्रांज़िशनल//EN
   http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd >
<html lang= ar dir= ltr xmlns= http://www.w3.org/1999/xhtml >

एक्सएचटीएमएल के लिए इस डॉक्यूमेंट प्रकार की घोषणा में डीटीडी का संदर्भ सम्मिलित है, जिसका सार्वजनिक पहचानकर्ता है -//W3C//DTD XHTML 1.0 Transitional//EN और जिसका सिस्टम आइडेंटिफायर है http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd, संदर्भित बाहरी इकाई का पता लगाने के लिए इकाई रिज़ॉल्वर या तो पहचानकर्ता का उपयोग कर सकता है। इस उदाहरण या अगले उदाहरण में कोई आंतरिक उपसमुच्चय नहीं दर्शाया गया है। इस प्रकार मूल एलिमेंट घोषित किया गया है html और, इसलिए यह इस उदाहरण में और अगले वाले भी doctype घोषणा के अंत के बाद खोला जाने वाला पहला टैग है। इस प्रकार HTML टैग doctype घोषणा का हिस्सा नहीं है, अपितु इस प्रकार अभिविन्यास उद्देश्यों के लिए उदाहरणों में सम्मिलित किया गया है।

सामान्य डीटीडी

कुछ सामान्य डीटीडी को सूचियों में डाल दिया गया है। इस प्रकार W3C ने वेब में सामान्यतः उपयोग किए जाने वाले DTDs की सूची तैयार की है, जिसमें नंगे HTML5 DTD, पुराने XHTML/HTML DTDs, सामान्य एम्बेडेड XML-आधारित स्वरूपों के DTDs जैसे मैथ एमएल और स्केलेबल वेक्टर ग्राफिक्स के साथ-साथ मिश्रित डॉक्यूमेंट सम्मिलित हैं जो उन स्वरूपों को जोड़ते हैं।[8] इस प्रकार W3C HTML5 और इसके संबंधित WHATWG संस्करण दोनों ही ब्राउज़रों को केवल कुछ FPI के XHTML DTDs को स्वीकार करने और बाहरी DTD फ़ाइलों को लाने पर आंतरिक तर्क का उपयोग करने को प्राथमिकता देने का विचार रखते हैं। इस प्रकार यह आगे एक्सएचटीएमएल के लिए आंतरिक डीटीडी निर्दिष्ट करता है, जो केवल इस प्रकार एचटीएमएल इकाई नामों की सूची है।[9]: §13.2 

एचटीएमएल 4.01 डीटीडी

सख्त डीटीडी प्रस्तुतिकरण मार्कअप को इस तर्क के साथ अनुमति नहीं देता है कि इसके अतिरिक्त कैस्केडिंग स्टाइल शीट्स का उपयोग किया जाना चाहिए। इसके कारण डीटीडी को इस प्रकार प्रदर्शित करते है:

<!DOCTYPE HTML public -//W3C//DTD HTML 4.01//EN
 http://www.w3.org/TR/html4/strict.dtd >
<HTML>

संक्रमणकालीन DTD कुछ पुराने PUBLIC और विशेषताओं को अनुमति देता है जिन्हें बहिष्कृत कर दिया गया है:

<!DOCTYPE HTML Public -//W3C//DTD HTML 4.01 Transitional//EN
 http://www.w3.org/TR/html4/loose.dtd >
<HTML>

यदि फ़्रेमिंग (वर्ल्ड वाइड वेब) का उपयोग किया जाता है, तो इसके अतिरिक्त फ़्रेमसेट DTD का उपयोग किया जाना चाहिए, जैसे:

<!DOCTYPE HTML Public -//W3C//DTD HTML 4.01 frameset//EN
 http://www.w3.org/TR/html4/frameset.dtd >
<HTML>

एक्सएचटीएमएल 1.0 डीटीडी

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

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

<?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE html
     PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

एक्सएचटीएमएल ट्रांजिशनल डीटीडी एक्सएचटीएमएल डीटीडी की तरह है, अपितु पदावनत टैग की अनुमति है।

<?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE html
     PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

एक्सएचटीएमएल फ्रेमसेट डीटीडी एकमात्र एक्सएचटीएमएल डीटीडी है जो फ्रेमसेट का समर्थन करता है। डीटीडी नीचे है।

<?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE html
     PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

एक्सएचटीएमएल 1.1 डीटीडी

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

<!DOCTYPE html public
   -//W3C//DTD XHTML 1.1//EN
   http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd >

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

एक्सएचटीएमएल बेसिक 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">

HTML5 DTD-रहित DOCTYPE

HTML5 का उपयोग करता है DOCTYPE यूआरएल या एफपीआई के रूप में डीटीडी के संदर्भ में इसकी कमी के कारण घोषणा बहुत कम है। इसमें केवल डॉक्यूमेंट के मूल एलिमेंट का टैग HTML है, [10] विनिर्देशन के शब्दों में इसे इस प्रकार लिख सकते हैं:

<!DOCTYPE html>, case-insensitively.

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

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

यह भी देखें

संदर्भ

  1. HTML2 HTML3 HTML4
  2. "The HTML syntax ― HTML5". Retrieved 2011-06-05.
  3. 3.00 3.01 3.02 3.03 3.04 3.05 3.06 3.07 3.08 3.09 3.10 3.11 3.12 3.13 Goldfarb, Charles F. (1990). एसजीएमएल हैंडबुक. Oxford: Clarendon Press. ISBN 0-19-853737-9.
  4. Walsh, Norman (2001-08-06). "एक्सएमएल कैटलॉग". The Organization for the Advancement of Structured Information Standards (OASIS).
  5. Clark, James (1997-12-15). "एसजीएमएल और एक्सएमएल की तुलना". W3C. NOTE-sgml-xml-971215.
  6. "DOCTYPE घोषणा". Archived from the original on 2011-08-14. Retrieved 2011-09-09.
  7. "DOCTYPE घोषणा". msdn.microsoft.com.
  8. "W3C QA - Recommended list of Doctype declarations you can use in your Web document". www.w3.org (in English). Retrieved 22 March 2019.
  9. "एचटीएमएल मानक". html.spec.whatwg.org. Retrieved 22 March 2019.
  10. "The HTML syntax ― HTML5". Web Hypertext Application Technology Working Group. Retrieved 2011-06-05. 3. A string that is an ASCII case-insensitive match for the string "DOCTYPE". 5. A string that is an ASCII case-insensitive match for the string "HTML".
  11. "The XHTML syntax ― HTML5". Web Hypertext Application Technology Working Group. Archived from the original on 2012-06-18. Retrieved 2009-09-01.
  12. "Polyglot Markup: HTML-Compatible XHTML Documents". World Wide Web Consortium. Retrieved 2012-01-17.

बाहरी संबंध