एसजीएमएल एंटिटी: Difference between revisions
No edit summary |
No edit summary |
||
Line 7: | Line 7: | ||
* पैरामीटर इकाई को केवल दस्तावेज़ प्रकार की परिभाषा (DTD) के भीतर संदर्भित किया जा सकता है। | * पैरामीटर इकाई को केवल दस्तावेज़ प्रकार की परिभाषा (DTD) के भीतर संदर्भित किया जा सकता है। | ||
संस्थाओं को आगे | संस्थाओं को आगे पार्स्ड या अनपार्स्ड के रूप में भी वर्गीकृत किया गया है: | ||
* पार्स की गई इकाई में टेक्स्ट होता है, जिसे दस्तावेज़ में सम्मिलित किया जाएगा और यदि इकाई | * पार्स की गई इकाई में टेक्स्ट होता है, जिसे दस्तावेज़ में सम्मिलित किया जाएगा और यदि इकाई का संदर्भ दिया गया है तो उसे पार्स किया जाएगा। पैरामीटर इकाई केवल पार्स की गई इकाई हो सकती है। | ||
* | * अनपार्स्ड इकाई में किसी भी प्रकार का डेटा होता है, और इसके संदर्भ के परिणामस्वरूप एप्लिकेशन को केवल इकाई की उपस्थिति के बारे में सूचित किया जाएगा; इकाई की सामग्री को पार्स नहीं किया जाएगा, भले ही वह टेक्स्ट हो। अनपार्स्ड इकाई केवल बाहरी हो सकती है। | ||
=== आंतरिक और बाहरी संस्थाएं === | === आंतरिक और बाहरी संस्थाएं === | ||
आंतरिक इकाई का मान होता है जो या तो [[शाब्दिक (कंप्यूटर विज्ञान)]] स्ट्रिंग है, या पार्स की गई स्ट्रिंग जिसमें | आंतरिक इकाई का एक मान होता है जो या तो [[शाब्दिक (कंप्यूटर विज्ञान)]] स्ट्रिंग है, या पार्स की गई स्ट्रिंग होती है जिसमें दस्तावेज़ में परिभाषित मार्कअप और इकाइयां सम्मिलित होती हैं (जैसे [[दस्तावेज़ प्रकार घोषणा]] या उप-दस्तावेज़)। इसके विपरीत, बाहरी इकाई के पास [[घोषणा (कंप्यूटर विज्ञान)]] होती है जो बाहरी दस्तावेज़ को आमंत्रित करती है, जिससे बाहरी दस्तावेज़ संदर्भ को समाधान करने के लिए [[इकाई प्रबंधक]] के हस्तक्षेप की आवश्यकता होती है। | ||
==== | ==== प्रणाली संस्थाएं ==== | ||
इकाई घोषणा | इकाई घोषणा में शाब्दिक मूल्य हो सकता है, या वैकल्पिक <code>SYSTEM</code> पहचानकर्ता का कुछ संयोजन हो सकता है, जो एसजीएमएल पार्सर्स को इकाई के स्ट्रिंग संदर्भ को संसाधन पहचानकर्ता के रूप में संसाधित करने की अनुमति देता है, और वैकल्पिक <code>PUBLIC</code> सार्वजनिक पहचानकर्ता, जो किसी विशेष प्रतिनिधित्व से स्वतंत्र [[पैरामीटर (कंप्यूटर विज्ञान)|इकाई]] की पहचान करता है। .[[XML]] में, [[SGML|एसजीएमएल]] का एक सबसेट, एक इकाई घोषणा में सिस्टम <code>SYSTEM</code> पहचानकर्ता के बिना सार्वजनिक पहचानकर्ता नहीं हो सकता है। | ||
====एसजीएमएल दस्तावेज़ इकाई==== | ====एसजीएमएल दस्तावेज़ इकाई==== | ||
जब बाहरी इकाई पूर्ण एसजीएमएल दस्तावेज़ का संदर्भ देती है, तो इसे कॉलिंग दस्तावेज़ में एसजीएमएल दस्तावेज़ इकाई के रूप में जाना जाता है। | जब बाहरी इकाई पूर्ण एसजीएमएल दस्तावेज़ का संदर्भ देती है, तो इसे कॉलिंग दस्तावेज़ में एसजीएमएल दस्तावेज़ इकाई के रूप में जाना जाता है। एसजीएमएल दस्तावेज़ टेक्स्ट दस्तावेज़ है जिसमें एसजीएमएल मार्कअप को एसजीएमएल प्रस्तावना (अर्थात, डीटीडी और उप दस्तावेज़) में परिभाषित किया गया है। पूर्ण एसजीएमएल दस्तावेज़ में न केवल दस्तावेज़ उदाहरण सम्मिलित होता है, अन्यथा प्रस्तावना और, वैकल्पिक रूप से, एसजीएमएल घोषणा सम्मिलित होती है, (जो दस्तावेज़ के मार्कअप सिंटैक्स को परिभाषित करती है और वर्ण एन्कोडिंग की घोषणा करती है)।<ref>{{cite web |url=http://www.is-thought.co.uk/book/sgml-6.htm#Types |title= Web SGML and HTML 4.0 Explained - Chapter 6|website=www.is-thought.co.uk |archive-url=https://web.archive.org/web/20090205025734/http://www.is-thought.co.uk/book/sgml-6.htm |archive-date=2009-02-05}}</ref> | ||
== सिंटेक्स == | == सिंटेक्स == | ||
किसी दस्तावेज़ की दस्तावेज़ प्रकार परिभाषा (डीटीडी) में इकाई घोषणा के माध्यम से इकाई को परिभाषित किया जाता है। उदाहरण के लिए: | |||
<syntaxhighlight lang="dtd"> | <syntaxhighlight lang="dtd"> | ||
<!ENTITY greeting1 "Hello world"> | <!ENTITY greeting1 "Hello world"> | ||
Line 30: | Line 30: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
यह डीटीडी मार्कअप निम्नलिखित की घोषणा करता है: | यह डीटीडी मार्कअप निम्नलिखित की घोषणा करता है: | ||
* | * <code>greeting1</code> नाम की एक आंतरिक सामान्य इकाई उपस्थित है और इसमें <code>Hello world</code> स्ट्रिंग सम्मिलित है। . | ||
* | * <code>greeting2</code> नाम की बाहरी सामान्य इकाई उपस्थित है और इसमें [[यूनिफॉर्म रिसोर्स पहचानकर्ता]] <code>file:///hello.txt</code> द्वारा पहचाने गए संसाधन में पाया गया टेक्स्ट सम्मिलित है। | ||
* | * <code>greeting3</code> नामक आंतरिक पैरामीटर इकाई उपस्थित है मौजूद है और इसमें स्ट्रिंग <code>¡Hola!</code> सम्मिलित है। | ||
* | * <code>greeting4</code> नाम की आंतरिक सामान्य इकाई उपस्थित है और इसमें स्ट्रिंग <code>¡Hola! means Hello!</code> सम्मिलित है। | ||
संस्थाओं के नामों को [[एसजीएमएल नाम]] | संस्थाओं के नामों को [[एसजीएमएल नाम|एसजीएमएल नामों]] के नियमों का पालन करना चाहिए, और संस्थाओं को संदर्भित किया जा सकता है, उसकी सीमाएं हैं। | ||
पैरामीटर | पैरामीटर इकाई को इकाई नाम को <code>%</code> और <code>;</code> के मध्य रखकर संदर्भित किया जाता है पार्स की गई सामान्य इकाइयों को इकाई का नाम <code>&</code>और<code>;</code>. के मध्य रखकर संदर्भित किया जाता है। अनपार्स्ड इकाइयों को इकाई नाम को प्रकार ENTITY के रूप में घोषित विशेषता के मान में रखकर संदर्भित किया जाता है। | ||
उपरोक्त उदाहरण से सामान्य संस्थाओं को दस्तावेज़ में निम्नानुसार संदर्भित किया जा सकता है: | उपरोक्त उदाहरण से सामान्य संस्थाओं को दस्तावेज़ में निम्नानुसार संदर्भित किया जा सकता है: | ||
Line 48: | Line 48: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
जब पार्स किया जाता है, तो इस दस्तावेज़ को डाउनस्ट्रीम एप्लिकेशन को उसी | जब पार्स किया जाता है, तो इस दस्तावेज़ को डाउनस्ट्रीम एप्लिकेशन को उसी प्रकार रिपोर्ट किया जाएगा जैसे कि इसे निम्नानुसार लिखा गया है, यह मानते हुए कि <code>hello.txt</code> फ़ाइल में <code>Salutations</code> टेक्स्ट सम्मिलित है। | ||
<syntaxhighlight lang="xml"> | <syntaxhighlight lang="xml"> | ||
<content> | <content> | ||
Line 61: | Line 61: | ||
<!ENTITY #DEFAULT "This entity is not defined"> | <!ENTITY #DEFAULT "This entity is not defined"> | ||
</syntaxhighlight> | </syntaxhighlight> | ||
अतिरिक्त मार्कअप | अतिरिक्त मार्कअप संरचनाएं और प्रोसेसर विकल्प प्रभावित कर सकते हैं कि संस्थाओं को संसाधित किया जाए या नहीं। उदाहरण के लिए, प्रोसेसर वैकल्पिक रूप से बाहरी संस्थाओं की उपेक्षा कर सकता है। | ||
== चरित्र संस्थाएं == | == चरित्र संस्थाएं == | ||
{{main| | {{main|करैक्टर इकाई संदर्भ | ||
}} | |||
उदाहरण के लिए, | एसजीएमएल और इसके कुछ डेरिवेटिव के लिए मानक इकाई सेट को [[स्मृति सहायक|मेमोरी उपकरणों]] के रूप में विकसित किया गया है, जिससे उन वर्णों का उपयोग करने की आवश्यकता हो जो सरलता से टाइप नहीं किए जाते हैं या जो लेगेसी कैरेक्टर एनकोडिंग द्वारा व्यापक रूप से समर्थित नहीं होते हैं। तो दस्तावेज़ संलेखन को सरलता से बनाया जा सके। ऐसी प्रत्येक इकाई में [[यूनिवर्सल कैरेक्टर सेट]] से केवल कैरेक्टर होता है। यद्यपि किसी भी कैरेक्टर को संख्यात्मक कैरेक्टर संदर्भ का उपयोग करके संदर्भित किया जा सकता है, कैरेक्टर इकाई संदर्भ वर्णों को [[कोड बिंदु]] के अतिरिक्त नाम से संदर्भित करने की अनुमति देता है। | ||
उदाहरण के लिए, एचटीएमएल4 में 252 अंतर्निहित [[चरित्र इकाई संदर्भ|कैरेक्टर इकाई संदर्भ]] हैं जिन्हें स्पष्ट रूप से घोषित करने की आवश्यकता नहीं है, जबकि एक्सएमएल में पाँच हैं। [[XHTML|एक्सएचटीएमएल]] में एक्सएमएल के समान पांच हैं, किन्तु यदि इसके डीटीडी का स्पष्ट रूप से उपयोग किया जाता है, तो इसमें 253 हैं (<code>&apos;</code> एचटीएमएल4 में उपस्थित अतिरिक्त इकाई)। | |||
== यह भी देखें == | == यह भी देखें == | ||
Line 73: | Line 75: | ||
* [[वस्तु (कंप्यूटर विज्ञान)]] | * [[वस्तु (कंप्यूटर विज्ञान)]] | ||
* [[एक्सएमएल और एचटीएमएल चरित्र इकाई संदर्भों की सूची]] | * [[एक्सएमएल और एचटीएमएल चरित्र इकाई संदर्भों की सूची]] | ||
* [[एक्सएमएल बाहरी इकाई हमला]] | * [[एक्सएमएल बाहरी इकाई हमला|एक्सएमएल बाहरी इकाई अटैक]] | ||
==टिप्पणियाँ== | ==टिप्पणियाँ== |
Revision as of 10:18, 28 June 2023
मानक सामान्यीकृत मार्कअप भाषा (एसजीएमएल) में, इकाई ऐसा सर्वप्रथम प्रकार का डेटा है, जो स्ट्रिंग (कंप्यूटर विज्ञान) को अद्वितीय उपनाम (जैसे उपयोगकर्ता-निर्दिष्ट नाम) या एसजीएमएल आरक्षित शब्द (जैसे कि #DEFAULT
) के साथ जोड़ती है। संस्थाएँ एसजीएमएल दस्तावेज़ों की संगठनात्मक संरचना और परिभाषा के लिए मूलभूत हैं। एसजीएमएल विनिर्देश कई इकाई प्रकारों को परिभाषित करता है, जो कीवर्ड क्वालिफायर और संदर्भ द्वारा भिन्न होते हैं। इकाई स्ट्रिंग मान में विभिन्न प्रकार से ब्लांक टेक्स्ट, एसजीएमएल टैग और पहले से परिभाषित संस्थाओं के संदर्भ सम्मिलित हो सकते हैं। कुछ इकाई प्रकार बाहरी दस्तावेज़ों को भी प्रारम्भ कर सकते हैं। संस्थाओं को संदर्भ द्वारा कॉल किया जाता है।
इकाई प्रकार
संस्थाओं को सामान्य या पैरामीटर के रूप में वर्गीकृत किया गया है:
- सामान्य इकाई को केवल दस्तावेज़ सामग्री के भीतर ही संदर्भित किया जा सकता है।
- पैरामीटर इकाई को केवल दस्तावेज़ प्रकार की परिभाषा (DTD) के भीतर संदर्भित किया जा सकता है।
संस्थाओं को आगे पार्स्ड या अनपार्स्ड के रूप में भी वर्गीकृत किया गया है:
- पार्स की गई इकाई में टेक्स्ट होता है, जिसे दस्तावेज़ में सम्मिलित किया जाएगा और यदि इकाई का संदर्भ दिया गया है तो उसे पार्स किया जाएगा। पैरामीटर इकाई केवल पार्स की गई इकाई हो सकती है।
- अनपार्स्ड इकाई में किसी भी प्रकार का डेटा होता है, और इसके संदर्भ के परिणामस्वरूप एप्लिकेशन को केवल इकाई की उपस्थिति के बारे में सूचित किया जाएगा; इकाई की सामग्री को पार्स नहीं किया जाएगा, भले ही वह टेक्स्ट हो। अनपार्स्ड इकाई केवल बाहरी हो सकती है।
आंतरिक और बाहरी संस्थाएं
आंतरिक इकाई का एक मान होता है जो या तो शाब्दिक (कंप्यूटर विज्ञान) स्ट्रिंग है, या पार्स की गई स्ट्रिंग होती है जिसमें दस्तावेज़ में परिभाषित मार्कअप और इकाइयां सम्मिलित होती हैं (जैसे दस्तावेज़ प्रकार घोषणा या उप-दस्तावेज़)। इसके विपरीत, बाहरी इकाई के पास घोषणा (कंप्यूटर विज्ञान) होती है जो बाहरी दस्तावेज़ को आमंत्रित करती है, जिससे बाहरी दस्तावेज़ संदर्भ को समाधान करने के लिए इकाई प्रबंधक के हस्तक्षेप की आवश्यकता होती है।
प्रणाली संस्थाएं
इकाई घोषणा में शाब्दिक मूल्य हो सकता है, या वैकल्पिक SYSTEM
पहचानकर्ता का कुछ संयोजन हो सकता है, जो एसजीएमएल पार्सर्स को इकाई के स्ट्रिंग संदर्भ को संसाधन पहचानकर्ता के रूप में संसाधित करने की अनुमति देता है, और वैकल्पिक PUBLIC
सार्वजनिक पहचानकर्ता, जो किसी विशेष प्रतिनिधित्व से स्वतंत्र इकाई की पहचान करता है। .XML में, एसजीएमएल का एक सबसेट, एक इकाई घोषणा में सिस्टम SYSTEM
पहचानकर्ता के बिना सार्वजनिक पहचानकर्ता नहीं हो सकता है।
एसजीएमएल दस्तावेज़ इकाई
जब बाहरी इकाई पूर्ण एसजीएमएल दस्तावेज़ का संदर्भ देती है, तो इसे कॉलिंग दस्तावेज़ में एसजीएमएल दस्तावेज़ इकाई के रूप में जाना जाता है। एसजीएमएल दस्तावेज़ टेक्स्ट दस्तावेज़ है जिसमें एसजीएमएल मार्कअप को एसजीएमएल प्रस्तावना (अर्थात, डीटीडी और उप दस्तावेज़) में परिभाषित किया गया है। पूर्ण एसजीएमएल दस्तावेज़ में न केवल दस्तावेज़ उदाहरण सम्मिलित होता है, अन्यथा प्रस्तावना और, वैकल्पिक रूप से, एसजीएमएल घोषणा सम्मिलित होती है, (जो दस्तावेज़ के मार्कअप सिंटैक्स को परिभाषित करती है और वर्ण एन्कोडिंग की घोषणा करती है)।[1]
सिंटेक्स
किसी दस्तावेज़ की दस्तावेज़ प्रकार परिभाषा (डीटीडी) में इकाई घोषणा के माध्यम से इकाई को परिभाषित किया जाता है। उदाहरण के लिए:
<!ENTITY greeting1 "Hello world">
<!ENTITY greeting2 SYSTEM "file:///hello.txt">
<!ENTITY % greeting3 "¡Hola!">
<!ENTITY greeting4 "%greeting3; means Hello!">
यह डीटीडी मार्कअप निम्नलिखित की घोषणा करता है:
greeting1
नाम की एक आंतरिक सामान्य इकाई उपस्थित है और इसमेंHello world
स्ट्रिंग सम्मिलित है। .greeting2
नाम की बाहरी सामान्य इकाई उपस्थित है और इसमें यूनिफॉर्म रिसोर्स पहचानकर्ताfile:///hello.txt
द्वारा पहचाने गए संसाधन में पाया गया टेक्स्ट सम्मिलित है।greeting3
नामक आंतरिक पैरामीटर इकाई उपस्थित है मौजूद है और इसमें स्ट्रिंग¡Hola!
सम्मिलित है।greeting4
नाम की आंतरिक सामान्य इकाई उपस्थित है और इसमें स्ट्रिंग¡Hola! means Hello!
सम्मिलित है।
संस्थाओं के नामों को एसजीएमएल नामों के नियमों का पालन करना चाहिए, और संस्थाओं को संदर्भित किया जा सकता है, उसकी सीमाएं हैं।
पैरामीटर इकाई को इकाई नाम को %
और ;
के मध्य रखकर संदर्भित किया जाता है पार्स की गई सामान्य इकाइयों को इकाई का नाम &
और;
. के मध्य रखकर संदर्भित किया जाता है। अनपार्स्ड इकाइयों को इकाई नाम को प्रकार ENTITY के रूप में घोषित विशेषता के मान में रखकर संदर्भित किया जाता है।
उपरोक्त उदाहरण से सामान्य संस्थाओं को दस्तावेज़ में निम्नानुसार संदर्भित किया जा सकता है:
<content>
<info>'&greeting1;' is a common test string.</info>
<info>The content of hello.txt is: &greeting2;</info>
<info>In Spanish, &greeting4;</info>
</content>
जब पार्स किया जाता है, तो इस दस्तावेज़ को डाउनस्ट्रीम एप्लिकेशन को उसी प्रकार रिपोर्ट किया जाएगा जैसे कि इसे निम्नानुसार लिखा गया है, यह मानते हुए कि hello.txt
फ़ाइल में Salutations
टेक्स्ट सम्मिलित है।
<content>
<info>'Hello world' is a common test string.</info>
<info>The content of hello.txt is: Salutations</info>
<info>In Spanish, ¡Hola! means Hello!</info>
</content>
अघोषित इकाई का संदर्भ त्रुटि है जब तक कि डिफ़ॉल्ट इकाई को परिभाषित नहीं किया गया हो। उदाहरण के लिए:
<!ENTITY #DEFAULT "This entity is not defined">
अतिरिक्त मार्कअप संरचनाएं और प्रोसेसर विकल्प प्रभावित कर सकते हैं कि संस्थाओं को संसाधित किया जाए या नहीं। उदाहरण के लिए, प्रोसेसर वैकल्पिक रूप से बाहरी संस्थाओं की उपेक्षा कर सकता है।
चरित्र संस्थाएं
एसजीएमएल और इसके कुछ डेरिवेटिव के लिए मानक इकाई सेट को मेमोरी उपकरणों के रूप में विकसित किया गया है, जिससे उन वर्णों का उपयोग करने की आवश्यकता हो जो सरलता से टाइप नहीं किए जाते हैं या जो लेगेसी कैरेक्टर एनकोडिंग द्वारा व्यापक रूप से समर्थित नहीं होते हैं। तो दस्तावेज़ संलेखन को सरलता से बनाया जा सके। ऐसी प्रत्येक इकाई में यूनिवर्सल कैरेक्टर सेट से केवल कैरेक्टर होता है। यद्यपि किसी भी कैरेक्टर को संख्यात्मक कैरेक्टर संदर्भ का उपयोग करके संदर्भित किया जा सकता है, कैरेक्टर इकाई संदर्भ वर्णों को कोड बिंदु के अतिरिक्त नाम से संदर्भित करने की अनुमति देता है।
उदाहरण के लिए, एचटीएमएल4 में 252 अंतर्निहित कैरेक्टर इकाई संदर्भ हैं जिन्हें स्पष्ट रूप से घोषित करने की आवश्यकता नहीं है, जबकि एक्सएमएल में पाँच हैं। एक्सएचटीएमएल में एक्सएमएल के समान पांच हैं, किन्तु यदि इसके डीटीडी का स्पष्ट रूप से उपयोग किया जाता है, तो इसमें 253 हैं ('
एचटीएमएल4 में उपस्थित अतिरिक्त इकाई)।
यह भी देखें
- घोषणात्मक प्रोग्रामिंग
- वस्तु (कंप्यूटर विज्ञान)
- एक्सएमएल और एचटीएमएल चरित्र इकाई संदर्भों की सूची
- एक्सएमएल बाहरी इकाई अटैक
टिप्पणियाँ
- ↑ "Web SGML and HTML 4.0 Explained - Chapter 6". www.is-thought.co.uk. Archived from the original on 2009-02-05.
संदर्भ
- Goldfarb, Charles F. (Ed.). ISO 8879 Review: WG8 N1855. WG8 and Liaisons, 1996.
- Goldfarb, Charles F., and Yuri Rubinsky (Ed.). The SGML Handbook. Oxford University Press, 1991.