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

From Vigyanwiki

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

आधुनिक वेब ब्राउज़र में HTML ब्राउज़र इंजन DOCTYPE स्नीफिंग या स्विचिंग करते हैं, जिसमें दस्तावेज़ में DOCTYPE के रूप में कार्य किया जाता है text/html लेआउट मोड निर्धारित करता है, जैसे विचित्र मोड या मानक मोड। text/html e> 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 जैसे MathML और स्केलेबल वेक्टर ग्राफिक्स के साथ-साथ मिश्रित दस्तावेज़ शामिल हैं जो उन स्वरूपों को जोड़ते हैं।[8] W3C HTML5 और इसके संबंधित WHATWG संस्करण दोनों ही ब्राउज़रों को केवल कुछ FPI के XHTML DTDs को स्वीकार करने और बाहरी DTD फ़ाइलों को लाने पर आंतरिक तर्क का उपयोग करने को प्राथमिकता देने की सलाह देते हैं। यह आगे एक्सएचटीएमएल के लिए आंतरिक डीटीडी निर्दिष्ट करता है जो केवल एचटीएमएल इकाई नामों की सूची है।[9]: §13.2 

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

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

<वाक्यविन्यास लैंग = html4सख्त>

<!DOCTYPE HTML पब्लिक -//W3C//DTD HTML 4.01//EN
 http://www.w3.org/TR/html4/strict.dtd >
<एचटीएमएल>

</वाक्यविन्यास हाइलाइट>

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

<वाक्यविन्यास लैंग = html4सख्त>

<!DOCTYPE HTML Public -//W3C//DTD HTML 4.01 Transitional//EN
 http://www.w3.org/TR/html4/loose.dtd >
<एचटीएमएल>

</वाक्यविन्यास हाइलाइट>

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

<वाक्यविन्यास लैंग = html4सख्त>

<!DOCTYPE HTML पब्लिक -//W3C//DTD HTML 4.01 फ़्रेमसेट//EN
 http://www.w3.org/TR/html4/frameset.dtd >
<एचटीएमएल>

</वाक्यविन्यास हाइलाइट>

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

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

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

<वाक्यविन्यास लैंग = html4सख्त>

<?xml संस्करण = 1.0 एन्कोडिंग = UTF-8 ?>
<!DOCTYPE html
 पब्लिक -//W3C//DTD XHTML 1.0 स्ट्रिक्ट//EN
  http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd >
<html xmlns= http://www.w3.org/1999/xhtml xml:lang= en lang= en >

</वाक्यविन्यास हाइलाइट>

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

<वाक्यविन्यास लैंग = html4सख्त>

<?xml संस्करण = 1.0 एन्कोडिंग = UTF-8 ?>
<!DOCTYPE html
 पब्लिक - // W3C // DTD XHTML 1.0 ट्रांजिशनल // EN
  http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd >
<html xmlns= http://www.w3.org/1999/xhtml xml:lang= en lang= en >

</वाक्यविन्यास हाइलाइट>

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

<वाक्यविन्यास लैंग = html4सख्त>

<?xml संस्करण = 1.0 एन्कोडिंग = UTF-8 ?>
<!DOCTYPE html
 पब्लिक -//W3C//DTD XHTML 1.0 फ्रेमसेट//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

<syntaxhighlight lang= html4strict ><!DOCTYPE html public

 -//W3C//DTD XHTML बेसिक 1.0//EN
 http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd >

</वाक्यविन्यास हाइलाइट>

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

<syntaxhighlight lang= html4strict ><!DOCTYPE html public

 -//W3C//DTD XHTML बेसिक 1.1//EN
 http://www.w3.org/TR/xhtml-basic/xhtml-basic11.dtd >

</वाक्यविन्यास हाइलाइट>

HTML5 DTD-रहित DOCTYPE

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

<!DOCTYPE html>, केस-असंवेदनशील रूप से।

यूआरआई या एफपीआई स्ट्रिंग की कमी के अपवाद के साथ (एफपीआई स्ट्रिंग को वैधकर्ताओं द्वारा संवेदनशील रूप से केस माना जाता है), यह प्रारूप (स्ट्रिंग का केस-असंवेदनशील मिलान) !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.

बाहरी संबंध