रिलैक्स एनजी: 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
 
(14 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{Short description|XML schema language}}
{{Short description|XML schema language}}
{{infobox file format
{{infobox file format
| name = RELAX NG
| name = रिलैक्स एनजी
| extension = .rng
| extension = .आरएनजी
| mime = application/xml, text/xml
| mime = एप्लिकेशन/एक्सएमएल, टेक्स्ट/एक्सएमएल
| owner =  
| owner =  
| genre = [[XML schema#XML schema languages|XML schema language]]
| genre = [[एक्सएमएल स्कीमा#एक्सएमएल स्कीमा भाषाएँ|एक्सएमएल स्कीमा भाषा]]
| extendedfrom = [[XML]]
| extendedfrom = [[एक्सएमएल]]
| 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 सिंटैक्स का उपयोग करते हुए लिखा जाएगा:
एक रिलैक्स एनजी स्कीमा नीडन संरचना में एक मूल अवयव को परिभाषित करके लिखा जा सकता है जिसमें आगे की अवयव परिभाषाएं होती हैं, जिसमें स्वयं अंतर्निहित परिभाषाएं हो सकती हैं। इस शैली में हमारी बुक के लिए एक स्कीमा, पूर्ण एक्सएमएल सिंटैक्स का उपयोग करते हुए लिखा जाएगा:


<वाक्यविन्यास प्रकाश लैंग = एक्सएमएल>
<syntaxhighlight lang="xml">
<तत्व का नाम = पुस्तक xmlns = http://relaxng.org/ns/structure/1.0>
<element name="book" xmlns="http://relaxng.org/ns/structure/1.0">
   <oneOrMore>
   <oneOrMore>
       <तत्व का नाम = पृष्ठ>
       <element name="page">
         <पाठ/>
         <text/>
       </तत्व>
       </element>
   </oneOrMore>
   </oneOrMore>
</तत्व>
</element>
</वाक्यविन्यास हाइलाइट>
</syntaxhighlight>
नीडन संरचना कई उपस्तरों के साथ स्थूल हो जाती है और पुनरावर्ती अवयवों को परिभाषित नहीं कर सकती है, इसलिए अधिकांश जटिल रिलैक्स एनजी स्कीमा स्कीमा में अलग से स्थित नामित पैटर्न परिभाषाओं के संदर्भों का उपयोग करते हैं। यहाँ, एक सपाट स्कीमा ठीक उसी बुक मार्कअप को पिछले उदाहरण के रूप में परिभाषित करता है:
<grammar xmlns= [http://relaxng.org/ns/structure/1.0 http://relax ng.org/ns/structure/1.0] >
<syntaxhighlight lang="xml">
<grammar xmlns="http://relaxng.org/ns/structure/1.0">
  <start>
      <element name="book">
        <oneOrMore>
            <ref name="page"/>
        </oneOrMore>
      </element>
  </start>
  <define name="page">
      <element name="page">
        <text/>
      </element>
  </define>
</grammar>
</syntaxhighlight>
 
 
 
 
 


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


<वाक्यविन्यास प्रकाश लैंग = एक्सएमएल>
<व्याकरण xmlns= http://relaxng.org/ns/structure/1.0 >
  <प्रारंभ>
      <तत्व का नाम = पुस्तक>
        <oneOrMore>           
<ref name="page"/>
</oneOrMore>
      </तत्व>
  </प्रारंभ>
  <नाम परिभाषित करें = पेज>
      <तत्व का नाम = पृष्ठ>
        <पाठ/>
      </तत्व>
  </परिभाषित>
</व्याकरण>
</वाक्यविन्यास हाइलाइट>


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


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


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


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


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


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


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


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


{{Unreferenced section|date=September 2019}}
रिलैक्स NG, डब्ल्यू3सी एक्सएमएल स्कीमा के साथ कई विशेषताएं साझा करता है जो पारंपरिक [[दस्तावेज़ प्रकार परिभाषा|दस्तावेज़ प्रकार परिभाषाओं]] से अलग करती हैं: [[डेटा प्रकार]], [[नियमित अभिव्यक्ति]] सपोर्ट, [[नाम स्थान|नेमस्पेस]] सपोर्ट, जटिल परिभाषाओं को संदर्भित करने की क्षमता।
अनौपचारिक प्रथा के अनुसार, नियमित सिंटैक्स में RELAX NG स्कीमा को आमतौर पर [[फ़ाइल नाम एक्सटेंशन]] .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] पर स्थित है। ध्यान दें कि पृष्ठ ओएसिस(संगठन) [[डार्विन सूचना टंकण वास्तुकला]] 1.3 स्कीमा को डीटीडी में बदलने में असमर्थ है, जैसे संदेशों के साथ विफल:


   क्षमा करें, कंबाइन = पसंद के साथ परिभाषाओं का संयोजन समर्थित नहीं है
   sorry, combining definitions with combine="choice" is not supported


== यह भी देखें ==
== यह भी देखें ==
* एक्सएमएल स्कीमा
* एक्सएमएल स्कीमा
*दस्तावेज़ प्रकार की परिभाषा (दस्तावेज़ प्रकार की परिभाषा)
*डीटीडी(दस्तावेज़ प्रकार की परिभाषा)
* [[दस्तावेज़ संरचना विवरण]]
* [[दस्तावेज़ संरचना विवरण]]
*XML स्कीमा (W3C)
*एक्सएमएल स्कीमा(डब्ल्यू3सी)
*स्कीमेट्रॉन
*स्कीमेट्रॉन
*ओडीडी (एक दस्तावेज़ यह सब करता है)
*ओडीडी(एक दस्तावेज़ यह सब करता है)
* [[एसएसएक्सएमएल]]
* [[एसएसएक्सएमएल|एसएक्सएमएल]]


==संदर्भ==
==संदर्भ==
Line 107: Line 107:


== बाहरी संबंध ==
== बाहरी संबंध ==
*[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}}
{{List of International Electrotechnical Commission standards}}
{{List of International Electrotechnical Commission standards}}
{{Authority control}}
{{Authority control}}
[[Category: 2001 में कंप्यूटर से संबंधित परिचय]] [[Category: डेटा मॉडलिंग भाषाएँ]] [[Category: आईएसओ / आईईसी मानकों]] [[Category: एक्सएमएल]] [[Category: XML- आधारित मानक]]


[[Category: Machine Translated Page]]
[[Category:2001 में कंप्यूटर से संबंधित परिचय]]
[[Category:Articles with hatnote templates targeting a nonexistent page]]
[[Category:Collapse templates]]
[[Category:Created On 18/02/2023]]
[[Category:Created On 18/02/2023]]
[[Category:Lua-based templates]]
[[Category:Machine Translated Page]]
[[Category:Navigational boxes| ]]
[[Category:Navigational boxes without horizontal lists]]
[[Category:Pages with reference errors]]
[[Category:Pages with script errors]]
[[Category:Short description with empty Wikidata description]]
[[Category:Sidebars with styles needing conversion]]
[[Category:Template documentation pages|Documentation/doc]]
[[Category:Templates Vigyan Ready]]
[[Category:Templates generating microformats]]
[[Category:Templates that add a tracking category]]
[[Category:Templates that are not mobile friendly]]
[[Category:Templates that generate short descriptions]]
[[Category:Templates using TemplateData]]
[[Category:Wikipedia metatemplates]]
[[Category:XML- आधारित मानक]]
[[Category:आईएसओ / आईईसी मानकों]]
[[Category:एक्सएमएल]]
[[Category:डेटा मॉडलिंग भाषाएँ]]

Latest revision as of 09:37, 17 March 2023

रिलैक्स एनजी
Filename extension
.आरएनजी
Internet media type
एप्लिकेशन/एक्सएमएल, टेक्स्ट/एक्सएमएल
Type of formatएक्सएमएल स्कीमा भाषा
Extended fromएक्सएमएल

कम्प्यूटिंग में, रिलैक्स एनजी(एक्सएमएल आगामी पीढ़ी के लिए नियमित भाषा) एक्सएमएल के लिए एक एक्सएमएल स्कीमा भाषा है- एक रिलैक्स एनजी स्कीमा एक्सएमएल दस्तावेज़ की संरचना और प्रकरण के लिए एक पैटर्न निर्दिष्ट करती है। एक रिलैक्स एनजी स्कीमा स्वयं एक एक्सएमएल दस्तावेज़ है, परन्तु रिलैक्स एनजी लोकप्रिय कॉम्पैक्ट, गैर-एक्सएमएल सिंटैक्स भी प्रदान करता है।[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://relaxng.org/ns/structure/1.0">
   <oneOrMore>
      <element name="page">
         <text/>
      </element>
   </oneOrMore>
</element>

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

<grammar xmlns= http://relax ng.org/ns/structure/1.0 > 
<grammar xmlns="http://relaxng.org/ns/structure/1.0">
   <start>
      <element name="book">
         <oneOrMore>
            <ref name="page"/>
         </oneOrMore>
      </element>
   </start>
   <define name="page">
      <element name="page">
         <text/>
      </element>
   </define>
</grammar>







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

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

element book {
    element page { text }+
}

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

start = element book { page+ }
page = element page { text }

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

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

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

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

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

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

नियतत्ववाद

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

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

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

 sorry, combining definitions with combine="choice" is not supported

यह भी देखें

संदर्भ

  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.


बाहरी संबंध