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

From Vigyanwiki
No edit summary
No edit summary
 
(11 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 =  
}}
}}
[[कम्प्यूटिंग]] में, रिलैक्स एनजी ([[XML|एक्सएमएल]] आगामी पीढ़ी के लिए नियमित भाषा) एक्सएमएल के लिए एक एक्सएमएल स्कीमा भाषा है- एक रिलैक्स एनजी स्कीमा एक्सएमएल दस्तावेज़ की संरचना और प्रकरण के लिए एक पैटर्न निर्दिष्ट करती है। एक रिलैक्स एनजी स्कीमा स्वयं एक एक्सएमएल दस्तावेज़ है, परन्तु   रिलैक्स एनजी एक लोकप्रिय कॉम्पैक्ट, गैर-एक्सएमएल सिंटैक्स भी प्रदान करता है।<ref>[http://www.oasis-open.org/committees/relax-ng/compact-20021121.html RELAX NG Compact Syntax]</ref> अन्य एक्सएमएल स्कीमा   भाषाओं की तुलना में रिलैक्स एनजी को अपेक्षाकृत सरल माना जाता है।
[[कम्प्यूटिंग]] में, रिलैक्स एनजी([[XML|एक्सएमएल]] आगामी पीढ़ी के लिए नियमित भाषा) एक्सएमएल के लिए एक एक्सएमएल स्कीमा भाषा है- एक रिलैक्स एनजी स्कीमा एक्सएमएल दस्तावेज़ की संरचना और प्रकरण के लिए एक पैटर्न निर्दिष्ट करती है। एक रिलैक्स एनजी स्कीमा स्वयं एक एक्सएमएल दस्तावेज़ है, परन्तु रिलैक्स एनजी लोकप्रिय कॉम्पैक्ट, गैर-एक्सएमएल सिंटैक्स भी प्रदान करता है।<ref>[http://www.oasis-open.org/committees/relax-ng/compact-20021121.html RELAX NG Compact Syntax]</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>
यह 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>




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


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


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


<element name="book" xmlns= [http://relaxng.org/ns/structure/1.0 http://रिलैक्स ng.org/ns/structure/1.0]>
<syntaxhighlight lang="xml">
<element name="book" xmlns="http://relaxng.org/ns/structure/1.0">
   <oneOrMore>
   <oneOrMore>
       <oneOrMore>
       <element name="page">
 
        <text/>
      <element name="page">
      </element>
          <text/>
  </oneOrMore>
      </element>
    </oneOrMore>
</element>
</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>


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


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


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


<grammar xmlns= [http://relaxng.org/ns/structure/1.0 http://रिलैक्स ng.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>


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


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


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


element book {
    element page { text }+
}


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


}
नामांकित पैटर्न के साथ, इसे समतल किया जा सकता है:
नामांकित पैटर्न के साथ, इसे समतल किया जा सकता है:
start = element book { page+ }


<वाक्यविन्यास लैंग = आरएनसी>
page = element page { text }
 
कॉम्पैक्ट रिलैक्स एनजी पार्सर इन दोनों को एक ही पैटर्न के रूप में मानेगा।
start = element book { page+ }
 
page = element page { text }
 
</वाक्यविन्यास हाइलाइट>
 
एक कॉम्पैक्ट रिलैक्स एनजी पार्सर इन दोनों को एक ही पैटर्न के रूप में मानेगा।


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


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


{{Unreferenced section|date=September 2019}}
== फ़ाइल नेम एक्सटेंशन ==
अनौपचारिक प्रथा के अनुसार, नियमित सिंटैक्स में रिलैक्स एनजी स्कीमा को आमतौर पर [[फ़ाइल नाम एक्सटेंशन]] .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 ओएसिस (संगठन) [[डार्विन सूचना टंकण वास्तुकला]] 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


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


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


== बाहरी संबंध ==
== बाहरी संबंध ==
*[http://relaxng.org/ रिलैक्स एनजी home page]
*[http://relaxng.org/ रिलैक्स एनजी home page]
*[http://www.thaiopensource.com/relaxng/design.html "The Design of रिलैक्स 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 रिलैक्स एनजी tutorial for the एक्सएमएल syntax]
*[http://www.oasis-open.org/committees/relax-ng/tutorial-20011203.html रिलैक्स एनजी tutorial for the एक्सएमएल syntax]
*[http://relaxng.org/compact-tutorial-20030326.html रिलैक्स एनजी 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 एक्सएमएल documents]
*[https://web.archive.org/web/20000711044018/http://www.xmlpatterns.com/ Design patterns for structuring एक्सएमएल documents]
*[http://books.xmlschemata.org/relaxng/ रिलैक्स एनजी 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/ रिलैक्स एनजी 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/ रिलैक्स एनजी 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 एक्सएमएल 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/ रिलैक्स एनजी 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 रिलैक्स एनजी 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/रिलैक्स ng/jing-trang]
*[https://github.com/relaxng/jing-trang https://github.com/रिलैक्स ng/jing-trang]


Line 140: Line 123:
{{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.


बाहरी संबंध