रिलैक्स एनजी

कम्प्यूटिंग में, रिलैक्स एनजी(एक्सएमएल आगामी पीढ़ी के लिए नियमित भाषा) एक्सएमएल के लिए एक एक्सएमएल स्कीमा भाषा है- एक रिलैक्स एनजी स्कीमा एक्सएमएल दस्तावेज़ की संरचना और प्रकरण के लिए एक पैटर्न निर्दिष्ट करती है। एक रिलैक्स एनजी स्कीमा स्वयं एक एक्सएमएल दस्तावेज़ है, परन्तु रिलैक्स एनजी लोकप्रिय कॉम्पैक्ट, गैर-एक्सएमएल सिंटैक्स भी प्रदान करता है। अन्य एक्सएमएल स्कीमा भाषाओं की तुलना में रिलैक्स एनजी को अपेक्षाकृत सरल माना जाता है।

यह 2001 और 2002 में ओएसिस(संगठन) रिलैक्स एनजी तकनीकी समिति के एक समिति विनिर्देश द्वारा परिभाषित किया गया था, जो मकोतो मुराता के रिलैक्स और जेम्स क्लार्क(एक्सएमएल विशेषज्ञ) के टीआरइएक्स पर आधारित था,  और मानकीकरण/अंतर्राष्ट्रीय आईएसओ/आईईएस 19757 के भाग दो द्वारा भी: दस्तावेज़ स्कीमा परिभाषा भाषाएँ(डीएसडीएल)।  आईएसओ/आईईएस 19757-2 को आईएसओ/आईईएस जेटीसी 1/एससी 34 द्वारा विकसित किया गया था और 2003 में इसके पूर्व संस्करण में प्रकाशित किया गया था।

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

This is page one. This is page two.

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

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

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

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

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

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

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

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

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

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

sorry, combining definitions with combine="choice" is not supported

यह भी देखें

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

बाहरी संबंध

 * रिलैक्स एनजी home page
 * "The Design of रिलैक्स NG" by James Clark
 * रिलैक्स एनजी tutorial for the एक्सएमएल syntax
 * रिलैक्स एनजी tutorial for the compact syntax
 * Design patterns for structuring एक्सएमएल documents
 * रिलैक्स एनजी Book by Eric van der Vlist, released under the GNU Free Documentation License
 * रिलैक्स एनजी Reference by ZVON
 * रिलैक्स एनजी Java community projects at java.net
 * Sun Multi-Schema Validator(MSV) open-source Java एक्सएमएल toolkit
 * रिलैक्स एनजी Compact Syntax validator open-source C program
 * XSD to रिलैक्स एनजी Converter Web-based converter
 * https://github.com/रिलैक्स ng/jing-trang