रिलैक्स एनजी: Difference between revisions

From Vigyanwiki
(Created page with "{{Short description|XML schema language}} {{infobox file format | name = RELAX NG | extension = .rng | mime = application/xml, text/xml | owner = | genre = XML schema#XML s...")
 
No edit summary
Line 9: Line 9:
| standard =  
| standard =  
}}
}}
[[कम्प्यूटिंग]] में, RELAX NG ([[XML]] अगली पीढ़ी के लिए नियमित भाषा) XML के लिए एक XML स्कीमा भाषा है- एक RELAX NG स्कीमा XML दस्तावेज़ की संरचना और सामग्री के लिए एक पैटर्न निर्दिष्ट करती है। एक RELAX NG स्कीमा स्वयं एक XML दस्तावेज़ है, लेकिन RELAX NG एक लोकप्रिय कॉम्पैक्ट, गैर-XML सिंटैक्स भी प्रदान करता है।<ref>[http://www.oasis-open.org/committees/relax-ng/compact-20021121.html RELAX NG Compact Syntax]</ref> अन्य XML स्कीमा की तुलना में #XML स्कीमा भाषाएँ [[RELAX]] NG को अपेक्षाकृत सरल माना जाता है।
[[कम्प्यूटिंग]] में, रिलैक्स  एनजी ([[XML|एक्सएमएल]] आगामी पीढ़ी के लिए नियमित भाषा) एक्सएमएल के लिए एक एक्सएमएल स्कीमा भाषा है- एक रिलैक्स  एनजी स्कीमा एक्सएमएल दस्तावेज़ की संरचना और प्रकरण के लिए एक पैटर्न निर्दिष्ट करती है। एक रिलैक्स  एनजी स्कीमा स्वयं एक एक्सएमएल दस्तावेज़ है, परन्तु  रिलैक्स  एनजी एक लोकप्रिय कॉम्पैक्ट, गैर-एक्सएमएल सिंटैक्स भी प्रदान करता है।<ref>[http://www.oasis-open.org/committees/relax-ng/compact-20021121.html RELAX NG Compact Syntax]</ref> अन्य एक्सएमएल स्कीमा   भाषाओं की तुलना में रिलैक्स  एनजी को अपेक्षाकृत सरल माना जाता है।


यह 2001 और 2002 में OASIS (संगठन) RELAX NG तकनीकी समिति के एक समिति विनिर्देश द्वारा परिभाषित किया गया था, जो [[मकोतो मुराता]] के RELAX और जेम्स क्लार्क (XML विशेषज्ञ) के XML के लिए नियमित भाषा विवरण पर आधारित था,<ref>{{cite web |url=http://www.thaiopensource.com/trex/ |title=TREX - Tree Regular Expressions for XML - "TREX has been merged with RELAX to create RELAX NG." |author=James Clark |access-date=2009-12-28}}</ref><ref>{{cite web |url=http://www.xml.gr.jp/relax/ |title=RELAX (Regular Language description for XML) -- "RELAX NG of OASIS. It is a schema language created by unifying RELAX Core and TREX." |author=Murata Makoto |date=2002-04-03 |access-date=2009-12-28}}</ref><ref>{{cite web |url=http://xml.coverpages.org/ni2001-06-05-a.html |title=TREX and RELAX Unified as RELAX NG, a Lightweight XML Language Validation Specification. |publisher=Cover Pages |date=2001-06-05 |access-date=2009-12-28}}</ref> और मानकीकरण/अंतर्राष्ट्रीय [[इंटरनेशनल इलेक्ट्रोटेक्नीकल कमीशन]] के लिए अंतर्राष्ट्रीय मानक अंतर्राष्ट्रीय संगठन के भाग दो द्वारा भी: दस्तावेज़ स्कीमा परिभाषा भाषाएँ ([[DSDL]])।<ref>[http://www.oasis-open.org/committees/relax-ng/spec-20011203.html RELAX NG Specification]</ref><ref>[http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=relax-ng RELAX NG Technical Committee]</ref> ISO/IEC 19757-2 को ISO/IEC JTC 1/SC 34 द्वारा विकसित किया गया था और 2003 में इसके पहले संस्करण में प्रकाशित किया गया था।<ref>{{cite web |url=http://www.iso.org/iso/iso_catalogue/catalogue_ics/catalogue_detail_ics.htm?csnumber=37605 |title=ISO/IEC 19757-2:2003 - Information technology -- Document Schema Definition Language (DSDL) -- Part 2: Regular-grammar-based validation -- RELAX NG |author=ISO |publisher=ISO |access-date=2009-12-28}}</ref>
यह 2001 और 2002 में ओएसिस (संगठन) रिलैक्स  एनजी तकनीकी समिति के एक समिति विनिर्देश द्वारा परिभाषित किया गया था, जो [[मकोतो मुराता]] के रिलैक्स  और जेम्स क्लार्क (एक्सएमएल विशेषज्ञ) के टीआरइएक्स  पर आधारित था,<ref>{{cite web |url=http://www.thaiopensource.com/trex/ |title=TREX - Tree Regular Expressions for XML - "TREX has been merged with RELAX to create RELAX NG." |author=James Clark |access-date=2009-12-28}}</ref><ref>{{cite web |url=http://www.xml.gr.jp/relax/ |title=RELAX (Regular Language description for XML) -- "RELAX NG of OASIS. It is a schema language created by unifying RELAX Core and TREX." |author=Murata Makoto |date=2002-04-03 |access-date=2009-12-28}}</ref><ref>{{cite web |url=http://xml.coverpages.org/ni2001-06-05-a.html |title=TREX and RELAX Unified as RELAX NG, a Lightweight XML Language Validation Specification. |publisher=Cover Pages |date=2001-06-05 |access-date=2009-12-28}}</ref> और मानकीकरण/अंतर्राष्ट्रीय [[इंटरनेशनल इलेक्ट्रोटेक्नीकल कमीशन|आईएसओ/आईईएस]] 19757 के भाग दो द्वारा भी: दस्तावेज़ स्कीमा परिभाषा भाषाएँ ([[DSDL|डीएसडीएल]])।<ref>[http://www.oasis-open.org/committees/relax-ng/spec-20011203.html RELAX NG Specification]</ref><ref>[http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=relax-ng RELAX NG Technical Committee]</ref> आईएसओ/आईईएस 19757-2 को आईएसओ/आईईएस जेटीसी 1/एससी 34 द्वारा विकसित किया गया था और 2003 में इसके पूर्व संस्करण में प्रकाशित किया गया था।<ref>{{cite web |url=http://www.iso.org/iso/iso_catalogue/catalogue_ics/catalogue_detail_ics.htm?csnumber=37605 |title=ISO/IEC 19757-2:2003 - Information technology -- Document Schema Definition Language (DSDL) -- Part 2: Regular-grammar-based validation -- RELAX NG |author=ISO |publisher=ISO |access-date=2009-12-28}}</ref>




== स्कीमा उदाहरण ==
== स्कीमा उदाहरण ==
मान लीजिए कि हम किसी पुस्तक के लिए अत्यंत सरल XML मार्कअप योजना को परिभाषित करना चाहते हैं: एक पुस्तक को एक या अधिक पृष्ठों के अनुक्रम के रूप में परिभाषित किया जाता है; प्रत्येक पृष्ठ में केवल पाठ होता है। एक नमूना XML दस्तावेज़ उदाहरण हो सकता है:
मान लीजिए कि हम किसी पुस्तक के लिए अत्यंत सरल एक्सएमएल मार्कअप योजना को परिभाषित करना चाहते हैं: एक पुस्तक को एक या अधिक पृष्ठों के अनुक्रम के रूप में परिभाषित किया जाता है; प्रत्येक पृष्ठ में मात्र  टेक्स्ट  होता है। एक प्रतिदर्श एक्सएमएल दस्तावेज़ उदाहरण हो सकता है:


<वाक्यविन्यास प्रकाश लैंग = एक्सएमएल>
<वाक्यविन्यास प्रकाश लैंग = एक्सएमएल>
<पुस्तक>
 
  <पेज>यह पहला पेज है।</पेज>
<book>
  <पेज>यह पेज दो है।</पेज>
  <page>This is page one.</page>
</पुस्तक>
 
  <page>This is page two.</page>
<book>
 
</वाक्यविन्यास हाइलाइट>
</वाक्यविन्यास हाइलाइट>


=== एक्सएमएल सिंटैक्स ===
=== एक्सएमएल सिंटैक्स ===
एक रिलैक्स एनजी स्कीमा एक नेस्टेड संरचना में एक मूल तत्व को परिभाषित करके लिखा जा सकता है जिसमें आगे की तत्व परिभाषाएं होती हैं, जिसमें स्वयं एम्बेडेड परिभाषाएं हो सकती हैं। इस शैली में हमारी पुस्तक के लिए एक स्कीमा, पूर्ण XML सिंटैक्स का उपयोग करते हुए लिखा जाएगा:
एक रिलैक्स एनजी स्कीमा एक नीडन संरचना में एक मूल अवयव को परिभाषित करके लिखा जा सकता है जिसमें आगे की अवयव परिभाषाएं होती हैं, जिसमें स्वयं अंतर्निहित परिभाषाएं हो सकती हैं। इस शैली में हमारी पुस्तक के लिए एक स्कीमा, पूर्ण एक्सएमएल सिंटैक्स का उपयोग करते हुए लिखा जाएगा:


<वाक्यविन्यास प्रकाश लैंग = एक्सएमएल>
<वाक्यविन्यास प्रकाश लैंग = एक्सएमएल>
<तत्व का नाम = पुस्तक xmlns = http://relaxng.org/ns/structure/1.0>
 
<element name="book" xmlns= [http://relaxng.org/ns/structure/1.0 http://रिलैक्स ng.org/ns/structure/1.0]>
   <oneOrMore>
   <oneOrMore>
       <तत्व का नाम = पृष्ठ>
       <oneOrMore>
        <पाठ/>
 
      </तत्व>
      <element name="page">
  </oneOrMore>
          <text/>
</तत्व>
      </element>
    </oneOrMore>
</element>
 
</वाक्यविन्यास हाइलाइट>
</वाक्यविन्यास हाइलाइट>


नेस्टेड संरचना कई उपस्तरों के साथ बोझिल हो जाती है और पुनरावर्ती तत्वों को परिभाषित नहीं कर सकती है, इसलिए अधिकांश जटिल RELAX NG स्कीमा स्कीमा में अलग से स्थित नामित पैटर्न परिभाषाओं के संदर्भों का उपयोग करते हैं। यहाँ, एक चपटा स्कीमा ठीक उसी पुस्तक मार्कअप को पिछले उदाहरण के रूप में परिभाषित करता है:
नीडन संरचना कई उपस्तरों के साथ बोझिल हो जाती है और पुनरावर्ती अवयवों को परिभाषित नहीं कर सकती है, इसलिए अधिकांश जटिल रिलैक्स  एनजी स्कीमा स्कीमा में अलग से स्थित नामित पैटर्न परिभाषाओं के संदर्भों का उपयोग करते हैं। यहाँ, एक चपटा स्कीमा ठीक उसी पुस्तक मार्कअप को पिछले उदाहरण के रूप में परिभाषित करता है:


<वाक्यविन्यास प्रकाश लैंग = एक्सएमएल>
<वाक्यविन्यास प्रकाश लैंग = एक्सएमएल>
<व्याकरण xmlns= http://relaxng.org/ns/structure/1.0 >
<व्याकरण एक्सएमएलns= [http://relaxng.org/ns/structure/1.0 http://रिलैक्स ng.org/ns/structure/1.0] >
   <प्रारंभ>
   <प्रारंभ>
       <तत्व का नाम = पुस्तक>
       <तत्व का नाम = पुस्तक>
Line 57: Line 64:


=== कॉम्पैक्ट सिंटैक्स ===
=== कॉम्पैक्ट सिंटैक्स ===
RELAX NG कॉम्पैक्ट सिंटैक्स एक गैर-XML प्रारूप है जो विस्तारित बैकस-नौर फॉर्म और [[नियमित अभिव्यक्ति]] से प्रेरित है, जिसे डिज़ाइन किया गया है ताकि इसे स्पष्ट रूप से इसके XML समकक्ष में अनुवादित किया जा सके, और फिर से, संरचना और अर्थ में एक-से-एक पत्राचार के साथ, ठीक उसी तरह जैसे [[Simple Outline XML]] (SOX) XML से संबंधित है। यह दस्तावेज़ प्रकार की परिभाषाओं के सिंटैक्स के साथ कई सुविधाएँ साझा करता है। यहाँ उपरोक्त स्कीमा का कॉम्पैक्ट रूप है:
रिलैक्स  एनजी कॉम्पैक्ट सिंटैक्स एक गैर-एक्सएमएल प्रारूप है जो विस्तारित बैकस-नौर फॉर्म और [[नियमित अभिव्यक्ति]] से प्रेरित है, जिसे डिज़ाइन किया गया है ताकि इसे स्पष्ट रूप से इसके एक्सएमएल समकक्ष में अनुवादित किया जा सके, और फिर से, संरचना और अर्थ में एक-से-एक पत्राचार के साथ, ठीक उसी तरह जैसे [[Simple Outline XML|Simple Outline एक्सएमएल]] (SOX) एक्सएमएल से संबंधित है। यह दस्तावेज़ प्रकार की परिभाषाओं के सिंटैक्स के साथ कई सुविधाएँ साझा करता है। यहाँ उपरोक्त स्कीमा का कॉम्पैक्ट रूप है:


<वाक्यविन्यास लैंग = आरएनसी>
<वाक्यविन्यास लैंग = आरएनसी>
Line 74: Line 81:
एक कॉम्पैक्ट रिलैक्स एनजी पार्सर इन दोनों को एक ही पैटर्न के रूप में मानेगा।
एक कॉम्पैक्ट रिलैक्स एनजी पार्सर इन दोनों को एक ही पैटर्न के रूप में मानेगा।


== W3C XML स्कीमा == के साथ तुलना
== W3C एक्सएमएल स्कीमा == के साथ तुलना
{{Main|XML schema languages}}
{{Main|XML schema languages}}
हालांकि RELAX NG विनिर्देश लगभग उसी समय W3C [[XML स्कीमा (W3C)]] विनिर्देश के रूप में विकसित किया गया था, बाद वाला यकीनन बेहतर ज्ञात था और ओपन-सोर्स और मालिकाना XML पार्सर और संपादकों दोनों में अधिक व्यापक रूप से लागू किया गया था जब यह W3C सिफारिश बन गया था। 2001. तब से, हालांकि, RELAX NG समर्थन ने तेजी से XML सॉफ़्टवेयर में अपना रास्ता खोज लिया है, और इसकी स्वीकृति लोकप्रिय दस्तावेज़-केंद्रित मार्कअप भाषाओं जैसे [[DocBook]], [[पाठ एन्कोडिंग पहल]] दिशानिर्देश, [[OpenDocument]] के लिए एक प्राथमिक स्कीमा के रूप में अपनाने से सहायता प्राप्त हुई है। , और ईपीयूबी।
हालांकि रिलैक्स  एनजी विनिर्देश लगभग उसी समय W3C [[XML स्कीमा (W3C)|एक्सएमएल स्कीमा (W3C)]] विनिर्देश के रूप में विकसित किया गया था, बाद वाला यकीनन बेहतर ज्ञात था और ओपन-सोर्स और मालिकाना एक्सएमएल पार्सर और संपादकों दोनों में अधिक व्यापक रूप से लागू किया गया था जब यह W3C सिफारिश बन गया था। 2001. तब से, हालांकि, रिलैक्स  एनजी समर्थन ने तेजी से एक्सएमएल सॉफ़्टवेयर में अपना रास्ता खोज लिया है, और इसकी स्वीकृति लोकप्रिय दस्तावेज़-केंद्रित मार्कअप भाषाओं जैसे [[DocBook]], [[पाठ एन्कोडिंग पहल|टेक्स्ट  एन्कोडिंग पहल]] दिशानिर्देश, [[OpenDocument]] के लिए एक प्राथमिक स्कीमा के रूप में अपनाने से सहायता प्राप्त हुई है। , और ईपीयूबी।


RELAX NG, W3C XML स्कीमा के साथ कई विशेषताएं साझा करता है जो पारंपरिक [[दस्तावेज़ प्रकार परिभाषा]]ओं से अलग करती हैं: [[डेटा प्रकार]], [[नियमित अभिव्यक्ति]] समर्थन, [[नाम स्थान]] समर्थन, जटिल परिभाषाओं को संदर्भित करने की क्षमता।
रिलैक्स  NG, W3C एक्सएमएल स्कीमा के साथ कई विशेषताएं साझा करता है जो पारंपरिक [[दस्तावेज़ प्रकार परिभाषा]]ओं से अलग करती हैं: [[डेटा प्रकार]], [[नियमित अभिव्यक्ति]] समर्थन, [[नाम स्थान]] समर्थन, जटिल परिभाषाओं को संदर्भित करने की क्षमता।


== फ़ाइल नाम एक्सटेंशन ==
== फ़ाइल नाम एक्सटेंशन ==


{{Unreferenced section|date=September 2019}}
{{Unreferenced section|date=September 2019}}
अनौपचारिक प्रथा के अनुसार, नियमित सिंटैक्स में RELAX NG स्कीमा को आमतौर पर [[फ़ाइल नाम एक्सटेंशन]] .rng के साथ नामित किया जाता है। कॉम्पैक्ट सिंटैक्स में स्कीमा के लिए, एक्सटेंशन .rnc का उपयोग किया जाता है।
अनौपचारिक प्रथा के अनुसार, नियमित सिंटैक्स में रिलैक्स  एनजी स्कीमा को आमतौर पर [[फ़ाइल नाम एक्सटेंशन]] .rng के साथ नामित किया जाता है। कॉम्पैक्ट सिंटैक्स में स्कीमा के लिए, एक्सटेंशन .rnc का उपयोग किया जाता है।


== नियतत्ववाद ==
== नियतत्ववाद ==
आराम से एनजी स्कीमा जरूरी नहीं हैं [http://relaxng.org/tutorial-20011203.html#IDAIRZR निर्धारक या स्पष्ट।]
रिलैक्स  से एनजी स्कीमा जरूरी नहीं हैं [http://relaxng.org/tutorial-20011203.html#IDAIRZR निर्धारक या स्पष्ट।]


== आराम से एनजी को डीटीडी में परिवर्तित करना ==
== रिलैक्स  से एनजी को डीटीडी में परिवर्तित करना ==
रिलैक्स एनजी स्कीमा को ट्रांग (सॉफ्टवेयर) लागू करके डीटीडी में परिवर्तित किया जा सकता है जिसे यहां पाया जा सकता है: [https://github.com/relaxng/jing-trang]। ट्रांग के लिए मैनुअल [http://www.thaiopensource.com/relaxng/trang-manual.html] पर स्थित है। ध्यान दें कि Trang OASIS (संगठन) [[डार्विन सूचना टंकण वास्तुकला]] 1.3 स्कीमा को DTDs में बदलने में असमर्थ है, जैसे संदेशों के साथ विफल:
रिलैक्स एनजी स्कीमा को ट्रांग (सॉफ्टवेयर) लागू करके डीटीडी में परिवर्तित किया जा सकता है जिसे यहां पाया जा सकता है: [https://github.com/relaxng/jing-trang]। ट्रांग के लिए मैनुअल [http://www.thaiopensource.com/relaxng/trang-manual.html] पर स्थित है। ध्यान दें कि Trang ओएसिस (संगठन) [[डार्विन सूचना टंकण वास्तुकला]] 1.3 स्कीमा को DTDs में बदलने में असमर्थ है, जैसे संदेशों के साथ विफल:


   क्षमा करें, कंबाइन = पसंद के साथ परिभाषाओं का संयोजन समर्थित नहीं है
   क्षमा करें, कंबाइन = पसंद के साथ परिभाषाओं का संयोजन समर्थित नहीं है
Line 97: Line 104:
*दस्तावेज़ प्रकार की परिभाषा (दस्तावेज़ प्रकार की परिभाषा)
*दस्तावेज़ प्रकार की परिभाषा (दस्तावेज़ प्रकार की परिभाषा)
* [[दस्तावेज़ संरचना विवरण]]
* [[दस्तावेज़ संरचना विवरण]]
*XML स्कीमा (W3C)
*एक्सएमएल स्कीमा (W3C)
*स्कीमेट्रॉन
*स्कीमेट्रॉन
*ओडीडी (एक दस्तावेज़ यह सब करता है)
*ओडीडी (एक दस्तावेज़ यह सब करता है)
Line 107: Line 114:


== बाहरी संबंध ==
== बाहरी संबंध ==
*[http://relaxng.org/ RELAX NG home page]
*[http://relaxng.org/ रिलैक्स  एनजी home page]
*[http://www.thaiopensource.com/relaxng/design.html "The Design of RELAX NG"] by James Clark
*[http://www.thaiopensource.com/relaxng/design.html "The Design of रिलैक्स  NG"] by James Clark
*[http://www.oasis-open.org/committees/relax-ng/tutorial-20011203.html RELAX NG tutorial for the XML syntax]
*[http://www.oasis-open.org/committees/relax-ng/tutorial-20011203.html रिलैक्स  एनजी tutorial for the एक्सएमएल syntax]
*[http://relaxng.org/compact-tutorial-20030326.html RELAX NG tutorial for the compact syntax]
*[http://relaxng.org/compact-tutorial-20030326.html रिलैक्स  एनजी tutorial for the compact syntax]
*[https://web.archive.org/web/20000711044018/http://www.xmlpatterns.com/ Design patterns for structuring XML documents]
*[https://web.archive.org/web/20000711044018/http://www.xmlpatterns.com/ Design patterns for structuring एक्सएमएल documents]
*[http://books.xmlschemata.org/relaxng/ RELAX NG Book] by Eric van der Vlist, released under the [[GNU Free Documentation License]]
*[http://books.xmlschemata.org/relaxng/ रिलैक्स  एनजी Book] by Eric van der Vlist, released under the [[GNU Free Documentation License]]
*[http://www.zvon.org/xxl/RelaxNG/Output/ Relax NG Reference] by ZVON
*[http://www.zvon.org/xxl/RelaxNG/Output/ रिलैक्स  एनजी Reference] by ZVON
*[https://web.archive.org/web/20070708133256/https://relax-ng.dev.java.net/ RELAX NG Java community projects] at java.net
*[https://web.archive.org/web/20070708133256/https://relax-ng.dev.java.net/ रिलैक्स  एनजी Java community projects] at java.net
*[https://web.archive.org/web/20070610122849/https://msv.dev.java.net/ Sun Multi-Schema Validator (MSV)] open-source Java XML toolkit
*[https://web.archive.org/web/20070610122849/https://msv.dev.java.net/ Sun Multi-Schema Validator (MSV)] open-source Java एक्सएमएल toolkit
*[http://sourceforge.net/projects/rnv/ Relax NG Compact Syntax validator] open-source C program
*[http://sourceforge.net/projects/rnv/ रिलैक्स  एनजी Compact Syntax validator] open-source C program
*[http://debeissat.nicolas.free.fr/XSDtoRNG.php XSD to Relax NG Converter] Web-based converter
*[http://debeissat.nicolas.free.fr/XSDtoRNG.php XSD to रिलैक्स  एनजी Converter] Web-based converter
*https://github.com/relaxng/jing-trang
*[https://github.com/relaxng/jing-trang https://github.com/रिलैक्स ng/jing-trang]


{{ISO standards}}
{{ISO standards}}

Revision as of 11:06, 5 March 2023

RELAX NG
Filename extension
.rng
Internet media type
application/xml, text/xml
Type of formatXML schema language
Extended fromXML

कम्प्यूटिंग में, रिलैक्स एनजी (एक्सएमएल आगामी पीढ़ी के लिए नियमित भाषा) एक्सएमएल के लिए एक एक्सएमएल स्कीमा भाषा है- एक रिलैक्स एनजी स्कीमा एक्सएमएल दस्तावेज़ की संरचना और प्रकरण के लिए एक पैटर्न निर्दिष्ट करती है। एक रिलैक्स एनजी स्कीमा स्वयं एक एक्सएमएल दस्तावेज़ है, परन्तु रिलैक्स एनजी एक लोकप्रिय कॉम्पैक्ट, गैर-एक्सएमएल सिंटैक्स भी प्रदान करता है।[1] अन्य एक्सएमएल स्कीमा भाषाओं की तुलना में रिलैक्स एनजी को अपेक्षाकृत सरल माना जाता है।

यह 2001 और 2002 में ओएसिस (संगठन) रिलैक्स एनजी तकनीकी समिति के एक समिति विनिर्देश द्वारा परिभाषित किया गया था, जो मकोतो मुराता के रिलैक्स और जेम्स क्लार्क (एक्सएमएल विशेषज्ञ) के टीआरइएक्स पर आधारित था,[2][3][4] और मानकीकरण/अंतर्राष्ट्रीय आईएसओ/आईईएस 19757 के भाग दो द्वारा भी: दस्तावेज़ स्कीमा परिभाषा भाषाएँ (डीएसडीएल)।[5][6] आईएसओ/आईईएस 19757-2 को आईएसओ/आईईएस जेटीसी 1/एससी 34 द्वारा विकसित किया गया था और 2003 में इसके पूर्व संस्करण में प्रकाशित किया गया था।[7]


स्कीमा उदाहरण

मान लीजिए कि हम किसी पुस्तक के लिए अत्यंत सरल एक्सएमएल मार्कअप योजना को परिभाषित करना चाहते हैं: एक पुस्तक को एक या अधिक पृष्ठों के अनुक्रम के रूप में परिभाषित किया जाता है; प्रत्येक पृष्ठ में मात्र टेक्स्ट होता है। एक प्रतिदर्श एक्सएमएल दस्तावेज़ उदाहरण हो सकता है:

<वाक्यविन्यास प्रकाश लैंग = एक्सएमएल>

<book>

  <page>This is page one.</page>
  <page>This is page two.</page>

<book>

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

एक्सएमएल सिंटैक्स

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

<वाक्यविन्यास प्रकाश लैंग = एक्सएमएल>

<element name="book" xmlns= http://रिलैक्स ng.org/ns/structure/1.0>

  <oneOrMore>
     <oneOrMore>
      <element name="page">
         <text/>
      </element>
   </oneOrMore>

</element>

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

नीडन संरचना कई उपस्तरों के साथ बोझिल हो जाती है और पुनरावर्ती अवयवों को परिभाषित नहीं कर सकती है, इसलिए अधिकांश जटिल रिलैक्स एनजी स्कीमा स्कीमा में अलग से स्थित नामित पैटर्न परिभाषाओं के संदर्भों का उपयोग करते हैं। यहाँ, एक चपटा स्कीमा ठीक उसी पुस्तक मार्कअप को पिछले उदाहरण के रूप में परिभाषित करता है:

<वाक्यविन्यास प्रकाश लैंग = एक्सएमएल> <व्याकरण एक्सएमएलns= http://रिलैक्स ng.org/ns/structure/1.0 >

  <प्रारंभ>
     <तत्व का नाम = पुस्तक>
        <oneOrMore>            

[8]

</oneOrMore>
     </तत्व>
  </प्रारंभ>
  <नाम परिभाषित करें = पेज>
     <तत्व का नाम = पृष्ठ>
        <पाठ/>
     </तत्व>
  </परिभाषित>

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

कॉम्पैक्ट सिंटैक्स

रिलैक्स एनजी कॉम्पैक्ट सिंटैक्स एक गैर-एक्सएमएल प्रारूप है जो विस्तारित बैकस-नौर फॉर्म और नियमित अभिव्यक्ति से प्रेरित है, जिसे डिज़ाइन किया गया है ताकि इसे स्पष्ट रूप से इसके एक्सएमएल समकक्ष में अनुवादित किया जा सके, और फिर से, संरचना और अर्थ में एक-से-एक पत्राचार के साथ, ठीक उसी तरह जैसे Simple Outline एक्सएमएल (SOX) एक्सएमएल से संबंधित है। यह दस्तावेज़ प्रकार की परिभाषाओं के सिंटैक्स के साथ कई सुविधाएँ साझा करता है। यहाँ उपरोक्त स्कीमा का कॉम्पैक्ट रूप है:

<वाक्यविन्यास लैंग = आरएनसी> तत्व पुस्तक {

   तत्व पृष्ठ {पाठ} +

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

नामांकित पैटर्न के साथ, इसे चपटा किया जा सकता है:

<वाक्यविन्यास लैंग = आरएनसी> प्रारंभ = तत्व पुस्तक { पृष्ठ + } पृष्ठ = तत्व पृष्ठ {पाठ} </वाक्यविन्यास हाइलाइट>

एक कॉम्पैक्ट रिलैक्स एनजी पार्सर इन दोनों को एक ही पैटर्न के रूप में मानेगा।

== W3C एक्सएमएल स्कीमा == के साथ तुलना

हालांकि रिलैक्स एनजी विनिर्देश लगभग उसी समय W3C एक्सएमएल स्कीमा (W3C) विनिर्देश के रूप में विकसित किया गया था, बाद वाला यकीनन बेहतर ज्ञात था और ओपन-सोर्स और मालिकाना एक्सएमएल पार्सर और संपादकों दोनों में अधिक व्यापक रूप से लागू किया गया था जब यह W3C सिफारिश बन गया था। 2001. तब से, हालांकि, रिलैक्स एनजी समर्थन ने तेजी से एक्सएमएल सॉफ़्टवेयर में अपना रास्ता खोज लिया है, और इसकी स्वीकृति लोकप्रिय दस्तावेज़-केंद्रित मार्कअप भाषाओं जैसे DocBook, टेक्स्ट एन्कोडिंग पहल दिशानिर्देश, OpenDocument के लिए एक प्राथमिक स्कीमा के रूप में अपनाने से सहायता प्राप्त हुई है। , और ईपीयूबी।

रिलैक्स NG, W3C एक्सएमएल स्कीमा के साथ कई विशेषताएं साझा करता है जो पारंपरिक दस्तावेज़ प्रकार परिभाषाओं से अलग करती हैं: डेटा प्रकार, नियमित अभिव्यक्ति समर्थन, नाम स्थान समर्थन, जटिल परिभाषाओं को संदर्भित करने की क्षमता।

फ़ाइल नाम एक्सटेंशन

अनौपचारिक प्रथा के अनुसार, नियमित सिंटैक्स में रिलैक्स एनजी स्कीमा को आमतौर पर फ़ाइल नाम एक्सटेंशन .rng के साथ नामित किया जाता है। कॉम्पैक्ट सिंटैक्स में स्कीमा के लिए, एक्सटेंशन .rnc का उपयोग किया जाता है।

नियतत्ववाद

रिलैक्स से एनजी स्कीमा जरूरी नहीं हैं निर्धारक या स्पष्ट।

रिलैक्स से एनजी को डीटीडी में परिवर्तित करना

रिलैक्स एनजी स्कीमा को ट्रांग (सॉफ्टवेयर) लागू करके डीटीडी में परिवर्तित किया जा सकता है जिसे यहां पाया जा सकता है: [1]। ट्रांग के लिए मैनुअल [2] पर स्थित है। ध्यान दें कि Trang ओएसिस (संगठन) डार्विन सूचना टंकण वास्तुकला 1.3 स्कीमा को DTDs में बदलने में असमर्थ है, जैसे संदेशों के साथ विफल:

 क्षमा करें, कंबाइन = पसंद के साथ परिभाषाओं का संयोजन समर्थित नहीं है

यह भी देखें

संदर्भ

  1. RELAX NG Compact Syntax
  2. James Clark. "TREX - Tree Regular Expressions for XML - "TREX has been merged with RELAX to create RELAX NG."". Retrieved 2009-12-28.
  3. Murata Makoto (2002-04-03). "RELAX (Regular Language description for XML) -- "RELAX NG of OASIS. It is a schema language created by unifying RELAX Core and TREX."". Retrieved 2009-12-28.
  4. "TREX and RELAX Unified as RELAX NG, a Lightweight XML Language Validation Specification". Cover Pages. 2001-06-05. Retrieved 2009-12-28.
  5. RELAX NG Specification
  6. RELAX NG Technical Committee
  7. ISO. "ISO/IEC 19757-2:2003 - Information technology -- Document Schema Definition Language (DSDL) -- Part 2: Regular-grammar-based validation -- RELAX NG". ISO. Retrieved 2009-12-28.
  8. Cite error: Invalid <ref> tag; no text was provided for refs named page


बाहरी संबंध