रिलैक्स एनजी

From Vigyanwiki
Revision as of 15:35, 5 March 2023 by alpha>Akriti
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 }+

}

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

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

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

start = element book { page+ }

page = element page { text }

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

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

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

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

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

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

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

नियतत्ववाद

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

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

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

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

यह भी देखें

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

संदर्भ

  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


बाहरी संबंध