रिलैक्स एनजी

From Vigyanwiki
Revision as of 14:17, 18 February 2023 by alpha>Indicwiki (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...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
RELAX NG
Filename extension
.rng
Internet media type
application/xml, text/xml
Type of formatXML schema language
Extended fromXML

कम्प्यूटिंग में, RELAX NG (XML अगली पीढ़ी के लिए नियमित भाषा) XML के लिए एक XML स्कीमा भाषा है- एक RELAX NG स्कीमा XML दस्तावेज़ की संरचना और सामग्री के लिए एक पैटर्न निर्दिष्ट करती है। एक RELAX NG स्कीमा स्वयं एक XML दस्तावेज़ है, लेकिन RELAX NG एक लोकप्रिय कॉम्पैक्ट, गैर-XML सिंटैक्स भी प्रदान करता है।[1] अन्य XML स्कीमा की तुलना में #XML स्कीमा भाषाएँ RELAX NG को अपेक्षाकृत सरल माना जाता है।

यह 2001 और 2002 में OASIS (संगठन) RELAX NG तकनीकी समिति के एक समिति विनिर्देश द्वारा परिभाषित किया गया था, जो मकोतो मुराता के RELAX और जेम्स क्लार्क (XML विशेषज्ञ) के XML के लिए नियमित भाषा विवरण पर आधारित था,[2][3][4] और मानकीकरण/अंतर्राष्ट्रीय इंटरनेशनल इलेक्ट्रोटेक्नीकल कमीशन के लिए अंतर्राष्ट्रीय मानक अंतर्राष्ट्रीय संगठन के भाग दो द्वारा भी: दस्तावेज़ स्कीमा परिभाषा भाषाएँ (DSDL)।[5][6] ISO/IEC 19757-2 को ISO/IEC JTC 1/SC 34 द्वारा विकसित किया गया था और 2003 में इसके पहले संस्करण में प्रकाशित किया गया था।[7]


स्कीमा उदाहरण

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

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

 <पेज>यह पहला पेज है।</पेज>
 <पेज>यह पेज दो है।</पेज>

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

एक्सएमएल सिंटैक्स

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

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

  <oneOrMore>
     <तत्व का नाम = पृष्ठ>
        <पाठ/>
     </तत्व>
  </oneOrMore>

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

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

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

  <प्रारंभ>
     <तत्व का नाम = पुस्तक>
        <oneOrMore>            

[8]

</oneOrMore>
     </तत्व>
  </प्रारंभ>
  <नाम परिभाषित करें = पेज>
     <तत्व का नाम = पृष्ठ>
        <पाठ/>
     </तत्व>
  </परिभाषित>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

नियतत्ववाद

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

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

रिलैक्स एनजी स्कीमा को ट्रांग (सॉफ्टवेयर) लागू करके डीटीडी में परिवर्तित किया जा सकता है जिसे यहां पाया जा सकता है: [1]। ट्रांग के लिए मैनुअल [2] पर स्थित है। ध्यान दें कि Trang OASIS (संगठन) डार्विन सूचना टंकण वास्तुकला 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


बाहरी संबंध