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

From Vigyanwiki
No edit summary
No edit summary
Line 18: Line 18:


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


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


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


</वाक्यविन्यास हाइलाइट>
</वाक्यविन्यास हाइलाइट>
Line 33: Line 33:
  <element name="book" xmlns= [http://relaxng.org/ns/structure/1.0 http://relax ng.org/ns/structure/1.0]>
  <element name="book" xmlns= [http://relaxng.org/ns/structure/1.0 http://relax ng.org/ns/structure/1.0]>


  <oneOrMore>
     <oneOrMore>
     <oneOrMore>


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


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


Line 47: Line 46:


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


<grammar xmlns= [http://relaxng.org/ns/structure/1.0 http://relax ng.org/ns/structure/1.0] >
      <start>
  <start>


    <element name="book">
      <element name="book">
          <oneOrMore> <ref name="page" />  


      <oneOrMore>     
<ref name="page"/>
  </oneOrMore>
  </oneOrMore>


    </element>
      </element>
  </start>
    </start>
  <define name="page">
    <define name="page">
    <element name="page">
      <element name="page">
      <text/>
          <text/>
    </element>
      </element>
  </define>
    </define>
</grammar>
</grammar>
 
</वाक्यविन्यास हाइलाइट>
</वाक्यविन्यास हाइलाइट>


Line 72: Line 69:


<वाक्यविन्यास लैंग = आरएनसी>
<वाक्यविन्यास लैंग = आरएनसी>
element book {
    element page { text }+


element book {
}
  element page { text }+
}
 
</वाक्यविन्यास हाइलाइट>
</वाक्यविन्यास हाइलाइट>


Line 82: Line 78:


<वाक्यविन्यास लैंग = आरएनसी>
<वाक्यविन्यास लैंग = आरएनसी>
start = element book { page+ }


start = element book { page+ }
page = element page { text }
 
page = element page { text }
 
</वाक्यविन्यास हाइलाइट>
</वाक्यविन्यास हाइलाइट>



Revision as of 13:45, 6 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://relax ng.org/ns/structure/1.0>
   <oneOrMore>
     <element name="page">
       <text/>
     </element>
   </oneOrMore>
</element>

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

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

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

<grammar xmlns= http://relax ng.org/ns/structure/1.0 > 
      <start>
      <element name="book">
         <oneOrMore> [8] 
</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.
  8. Cite error: Invalid <ref> tag; no text was provided for refs named page


बाहरी संबंध