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

From Vigyanwiki
No edit summary
No edit summary
Line 44: Line 44:
</वाक्यविन्यास हाइलाइट>
</वाक्यविन्यास हाइलाइट>


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


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


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


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


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


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



Revision as of 15:13, 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>

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

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

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

<grammar xmlns= http://रिलैक्स 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 }+

}

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

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

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

प्रारंभ = तत्व पुस्तक { पृष्ठ + }

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

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

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

== 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


बाहरी संबंध