एक्सएमएल परिवर्तन भाषा: Difference between revisions

From Vigyanwiki
(Created page with "{{Short description|Type of programming language}} {{Data transformation}} {{Refimprove|date=July 2011}} File:XML To XML Transformation.svg|thumb|right|300px|एक एक...")
 
No edit summary
 
(5 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{Short description|Type of programming language}}
{{Short description|Type of programming language}}
{{Data transformation}}
{{Data transformation}}
{{Refimprove|date=July 2011}}
[[File:XML To XML Transformation.svg|thumb|right|300px|एक्सएमएल से एक्सएमएल रूपांतरण]]
[[File:XML To XML Transformation.svg|thumb|right|300px|एक एक्सएमएल से एक्सएमएल परिवर्तन]]
'''एक्सएमएल''' ('''XML''') '''रूपांतरण भाषा''' एक [[ प्रोग्रामिंग भाषा |प्रोग्रामिंग भाषा]] है जिसे विशेष रूप से ''इनपुट'' एक्सएमएल दस्तावेज़ को ''आउटपुट'' दस्तावेज़ में बदलने के लिए डिज़ाइन किया गया है जो कुछ विशिष्ट लक्ष्य को पूरा करता है।
<!-- TODO: ImageNode -->
XML ट्रांसफ़ॉर्मेशन लैंग्वेज एक [[ प्रोग्रामिंग भाषा ]] है जिसे विशेष रूप से ''इनपुट'' XML डॉक्यूमेंट को ''आउटपुट'' डॉक्यूमेंट में बदलने के लिए डिज़ाइन किया गया है जो कुछ विशिष्ट लक्ष्य को पूरा करता है।


परिवर्तन के दो विशेष मामले हैं:
परिवर्तन की दो विशेष परिस्थितियाँ हैं-
* XML से XML: ''आउटपुट दस्तावेज़'' एक XML दस्तावेज़ है।
* '''एक्सएमएल से एक्सएमएल'''- ''आउटपुट दस्तावेज'' एक एक्सएमएल दस्तावेज है।
* [[एक्सएमएल]] टू डेटा: ''आउटपुट डॉक्यूमेंट'' एक [[बाइट स्ट्रीम]] है।
* '''[[एक्सएमएल]] से डेटा'''- ''आउटपुट दस्तावेज़'' एक [[बाइट स्ट्रीम]] है।


== एक्सएमएल से एक्सएमएल ==
== एक्सएमएल से एक्सएमएल ==
चूंकि XML से XML परिवर्तन एक XML दस्तावेज़ को आउटपुट करता है, XML से XML परिवर्तन श्रृंखला XML पाइपलाइन बनाती है।
जैसे कि '''एक्सएमएल से एक्सएमएल''' रूपांतरण एक एक्सएमएल दस्तावेज़ को आउटपुट करता है, '''एक्सएमएल से एक्सएमएल''' रूपांतरण श्रृंखलाएँ रूपांतरण पाइपलाइन बनाती हैं।


== एक्सएमएल से डेटा ==
== एक्सएमएल से डेटा ==
XML (एक्सटेंसिबल मार्कअप लैंग्वेज) से लेकर डेटा ट्रांसफ़ॉर्मेशन में कुछ महत्वपूर्ण मामले शामिल हैं। सबसे उल्लेखनीय एक XML से [[HTML]] (हाइपरटेक्स्ट मार्कअप लैंग्वेज) है, एक HTML दस्तावेज़ के रूप में एक XML दस्तावेज़ ''नहीं'' है।
'''एक्सएमएल (एक्स्टेंसिबल मार्कअप लैंग्वेज) से डेटा''' रूपांतरण में कुछ महत्वपूर्ण स्थितियाँ सम्मिलित हैं। सबसे उल्लेखनीय है '''एक्सएमएल से एचटीएमएल (HTML) (हाइपरटेक्स्ट मार्कअप लैंग्वेज)''', क्योंकि [[HTML|एचटीएमएल]] दस्तावेज़ एक्सएमएल दस्तावेज़ ''नहीं है।''


== [[एसजीएमएल]] उत्पत्ति ==
== [[एसजीएमएल|एसजीएमएल (SGML)]] उत्पत्ति ==
प्रारंभिक परिवर्तन भाषाएँ XML के एक SGML प्रोफ़ाइल के आगमन से पहले की हैं, और इस प्रकार विशेष रूप से XML के बजाय स्वेच्छिक SGML में इनपुट स्वीकार करती हैं। इनमें एसजीएमएल-टू-एसजीएमएल लिंक प्रोसेस डेफिनिशन (एलपीडी) प्रारूप शामिल है जिसे एसजीएमएल मानक के हिस्से के रूप में परिभाषित किया गया है; एसजीएमएल (लेकिन एक्सएमएल नहीं) में, एलपीडी फ़ाइल को दस्तावेज़ से ही संदर्भित किया जा सकता है a {{code|LINKTYPE}} घोषणापत्र, दस्तावेज़ प्रकार घोषणा के समान |{{code|DOCTYPE}} दस्तावेज़ प्रकार की परिभाषा के लिए उपयोग की जाने वाली घोषणा।<ref>{{cite book |isbn=0-19-853737-9 |work=The SGML Handbook |title=Clause 12—Markup Declarations: Link Process Definition |last=Goldfarb |first=Charles F. |author-link=Charles Goldfarb |publisher=[[Clarendon Press]] |location=[[Oxford]] |year=1990 |pages=433–449}}</ref> ऐसी अन्य रूपांतरण भाषाओं में [[दस्तावेज़ शैली शब्दार्थ और विशिष्टता भाषा]] (DSSSL) शामिल हैं। नई परिवर्तन भाषाएँ विशेष रूप से XML को लक्षित करती हैं, और इस प्रकार केवल XML को स्वीकार करती हैं, मनमानी SGML को नहीं।
प्रारंभिक रूपांतरण भाषाएं एसजीएमएल प्रोफ़ाइल के रूप में एक्सएमएल के आगमन से पहले की हैं, और इस प्रकार विशेष रूप से एक्सएमएल के स्थान पर मनमाने ढंग से एसजीएमएल में इनपुट स्वीकार करती हैं। इनमें एसजीएमएल-से-एसजीएमएल '''लिंक प्रक्रिया परिभाषा''' (एलपीडी) प्रारूप सम्मिलित है, जिसे एसजीएमएल मानक के भाग के रूप में परिभाषित किया गया है एसजीएमएल (लेकिन एक्सएमएल नहीं) में, एलपीडी (LPD) फ़ाइल को {{code|LINKTYPE}} घोषणा द्वारा दस्तावेज़ से ही संदर्भित किया जा सकता है, डीटीडी (DTD) के लिए उपयोग की जाने वाली {{code|DOCTYPE}} घोषणा के समान।<ref>{{cite book |isbn=0-19-853737-9 |work=The SGML Handbook |title=Clause 12—Markup Declarations: Link Process Definition |last=Goldfarb |first=Charles F. |author-link=Charles Goldfarb |publisher=[[Clarendon Press]] |location=[[Oxford]] |year=1990 |pages=433–449}}</ref> एलपीडी की कुछ कमियों को दूर करने वाली ऐसी अन्य रूपांतरण भाषाओं में [[दस्तावेज़ शैली शब्दार्थ और विशिष्टता भाषा]] (डीएसएसएसएल) और ओमनीमार्क सम्मिलित हैं। नई रूपांतरण भाषाएँ विशेष रूप से एक्सएमएल को लक्षित करती हैं, और इस प्रकार केवल एक्सएमएल को स्वीकार करती हैं, मनमाने ढंग से एसजीएमएल को नहीं।  


== मौजूदा भाषाएँ ==
== विद्यमान भाषाएँ ==
* XSLT: [[XSL Transformations]] सबसे प्रसिद्ध XML रूपांतरण भाषा है। XSLT 1.0 W3C अनुशंसा को 1999 में [[XPath]] 1.0 के साथ प्रकाशित किया गया था, और तब से इसे व्यापक रूप से लागू किया गया है। XSLT 2.0 जनवरी 2007 से W3C की सिफारिश बन गया है और सैक्सन XSLT जैसे विनिर्देश के कार्यान्वयन पहले से ही उपलब्ध हैं।
* '''एक्सएसएलटी'''- [[XSL Transformations|एक्सएसएलटी (XSLT)]] सबसे प्रसिद्ध एक्सएमएल रूपांतरण भाषा है। एक्सएसएलटी 1.0 W3C अनुशंसा को [[XPath]] 1.0 के साथ 1999 में प्रकाशित किया गया था, और तब से इसे व्यापक रूप से लागू किया गया है। एक्सएसएलटी 2.0 जनवरी 2007 से W3C अनुशंसा बन गयी है और सैक्सन 8 जैसे विनिर्देश के कार्यान्वयन पहले से ही उपलब्ध हैं।
* [[XQuery]]: नाम में क्वेरी होने के बावजूद XQuery एक पूर्ण कार्यात्मक भाषा है। यह Microsoft, Oracle, DB2, MarkLogic, आदि द्वारा उपयोग किया जाने वाला एक ''वास्तविक'' मानक है, जो XRX (वेब ​​एप्लिकेशन आर्किटेक्चर) वेब प्रोग्रामिंग मॉडल की नींव है, और संस्करण 1.0 के लिए W3C अनुशंसा है। XQuery को XSLT की तरह XML में ही नहीं लिखा गया है, इसलिए इसका सिंटैक्स काफी हल्का है। भाषा XPath 2.0 पर आधारित है। XQuery प्रोग्राम में [[साइड इफेक्ट (कंप्यूटर विज्ञान)]] नहीं हो सकता है। साइड-इफेक्ट्स, XSLT की तरह और लगभग समान क्षमताएं प्रदान करता है (उदाहरण के लिए: चर और फ़ंक्शंस घोषित करना, अनुक्रमों पर पुनरावृत्ति करना, W3C स्कीमा प्रकारों का उपयोग करना), भले ही प्रोग्राम सिंटैक्स काफी हो अलग। XQuery, FOR, WHERE और फ़ंक्शन संरचना (जैसे fn:concat( <html> , generate-body(), </html> )) का उपयोग करके तर्क संचालित है। इसके विपरीत, XSLT डेटा-संचालित (पुश प्रोसेसिंग मॉडल) है जहां इनपुट दस्तावेज़ की कुछ शर्तें टेम्पलेट के निष्पादन को ट्रिगर करती हैं, न कि कोड को उस क्रम में निष्पादित करने के बजाय जिस क्रम में इसे लिखा गया है।
* [[XQuery|'''एक्सक्वेरी''' ('''XQuery''')]]- नाम में "क्वेरी" होने के बावजूद, एक्सक्वेरी एक पूर्ण कार्यात्मक भाषा है। यह माइक्रोसॉफ्ट, ओरेकल, डीबी 2 (DB2), मार्कलॉजिक इत्यादि द्वारा उपयोग किया जाने वाला एक वास्तविक मानक है, यह एक्सआरएक्स (XRX) वेब प्रोग्रामिंग मॉडल की नींव है, और इसमें संस्करण 1.0 के लिए W3C अनुशंसा है। एक्सक्वेरी को एक्सएसएलटी की तरह एक्सएमएल में नहीं लिखा गया है, इसलिए इसका सिंटैक्स बहुत हल्का है। यह भाषा XPath 2.0 पर आधारित है। एक्सक्वेरी प्रोग्राम में एक्सएसएलटी की तरह [[साइड इफेक्ट (कंप्यूटर विज्ञान)|दुष्प्रभाव]] नहीं हो सकते हैं और यह लगभग समान क्षमताएं (उदाहरण के लिए- चर और फ़ंक्शन घोषित करना, अनुक्रमों पर पुनरावृत्ति करना, W3C स्कीमा प्रकारों का उपयोग करना), प्रदान करता है भले ही प्रोग्राम सिंटैक्स काफी भिन्न हो। एक्सक्वेरी तर्क आधारित है, फॉर (FOR), वेयर (WHERE) और फ़ंक्शन संरचना (उदाहरण के लिए fn:concat("<html>", generate-body(), "</html>")) का उपयोग करते हुए। इसके विपरीत, एक्सएसएलटी डेटा-संचालित (पुश प्रोसेसिंग मॉडल) है जहां इनपुट दस्तावेज़ की कुछ शर्तें कोड को उस क्रम में निष्पादित करने के स्थान पर टेम्पलेट्स के निष्पादन को ट्रिगर करती हैं जिसमें इसे लिखा गया है।  
* [[एक्सप्रोक]]: एक्सप्रोक एक एक्सएमएल पाइपलाइन भाषा है। XProc 1.0 W3C अनुशंसा मई 2010 में प्रकाशित हुई थी।
* [[एक्सप्रोक|'''एक्सप्रोक''' ('''XProc''')]] - एक्सप्रोक एक एक्सएमएल पाइपलाइन भाषा है। XProc 1.0 W3C अनुशंसा मई 2010 में प्रकाशित की गई थी।
* XML दस्तावेज़ परिवर्तन: XML दस्तावेज़ों पर सरल परिवर्तन करने के लिए एक Microsoft मानक है। मुख्य रूप से IIS Web.config फाइल (कॉन्फिग ट्रांसफॉर्म) बनाने के लिए, अन्य कार्यान्वयन इसे सामान्य कॉन्फिग फाइलों के लिए बिल्ड टाइम (स्लो चीता) या कमांड लाइन (CTT) से उपयोग करने की अनुमति देते हैं।
* '''एक्सएमएल दस्तावेज़ रूपांतरण'''- एक्सएमएल दस्तावेज़ों पर सरल रूपांतरण करने के लिए एक माइक्रोसॉफ्ट मानक है। मुख्य रूप से IIS Web.config फ़ाइलें (कॉन्फिग रूपांतरण) बनाने के लिए, अन्य कार्यान्वयन इसे जेनेरिक कॉन्फ़िग फ़ाइलों के लिए निर्माण समय (स्लो चीता) या कमांड लाइन (CTT) से उपयोग करने की अनुमति देते हैं।  
* एसटीएक्स[[एक्सएमएल के लिए स्ट्रीमिंग रूपांतरण]] ट्रांसफॉर्मेशन (एक्सएमएल के लिए स्ट्रीमिंग ट्रांसफॉर्मेशन[[सैक्सन एक्सएसएलटी]] से प्रेरित है लेकिन इसे वन-पास ट्रांसफॉर्मेशन प्रक्रिया की अनुमति देने के लिए डिजाइन किया गया है जो स्ट्रीमिंग को कभी नहीं रोकता है। कार्यान्वयन जावा में उपलब्ध हैं ([https://web.archive.org/web/20030603110922/http://joost.sourceforge.net/ Joost]) और [[पर्ल]] ([https://archive.today/20030923074321/http: //www.gingerall.com/charlie/ga/xml/p_stx.xml?s=org XML::STX]).
* '''एसटीएक्स'''- एसटीएक्स ([[एक्सएमएल के लिए स्ट्रीमिंग रूपांतरण]]) [[सैक्सन एक्सएसएलटी|एक्सएसएलटी]] से प्रेरित है लेकिन इसे वन-पास रूपांंतरण प्रक्रिया की अनुमति देने के लिए डिज़ाइन किया गया है जो स्ट्रीमिंग को कभी नहीं रोकता है। कार्यान्वयन जावा ([https://web.archive.org/web/20030603110922/http://joost.sourceforge.net/ जूस्ट]) और [[पर्ल]] ([https://archive.today/20030923074321/http: एक्सएमएल::एसटीएक्स]) में उपलब्ध हैं।
* [[एक्सएमएल स्क्रिप्ट]]: एक्सएमएल स्क्रिप्ट पर्ल से प्रेरित एक अनिवार्य स्क्रिप्टिंग भाषा है जो एक्सएमएल सिंटैक्स का उपयोग करती है। एक्सएमएल स्क्रिप्ट इनपुट ट्री से नोड्स का चयन करने के लिए XPath और उसके मालिकाना DSLPath का समर्थन करती है।
*[[एक्सएमएल स्क्रिप्ट|'''एक्सएमएल स्क्रिप्ट''']]- एक्सएमएल स्क्रिप्ट पर्ल से प्रेरित एक अनिवार्य स्क्रिप्टिंग भाषा है जो एक्सएमएल सिंटैक्स का उपयोग करती है। एक्सएमएल स्क्रिप्ट इनपुट ट्री से नोड्स का चयन करने के लिए XPath और उसके स्वामित्व वाले DSLPath का समर्थन करती है।  
* एफएक्सटी: एफएक्सटी एक कार्यात्मक एक्सएमएल परिवर्तन उपकरण है, जिसे [[एमएल (प्रोग्रामिंग भाषा)]] में लागू किया गया है।
*'''एफएक्सटी'''- एफएक्सटी एक कार्यात्मक एक्सएमएल रूपांतरण उपकरण है, जिसे मानक [[एमएल (प्रोग्रामिंग भाषा)|एमएल (ML)]] में कार्यान्वित किया गया है।  
* XDuce: XDuce XSLT की तुलना में हल्के सिंटैक्स वाली टाइप की गई भाषा है। यह एमएल में लिखा है।
* '''एक्सड्यूस (XDuce)'''- एक्सएसएलटी की तुलना में एक्सड्यूस हल्के सिंटैक्स वाली एक टाइप की गई भाषा है। यह एमएल (ML) में लिखा गया है
* [[CDuce]]: CDuce ने XDuce को एक सामान्य-उद्देश्य [[कार्यात्मक प्रोग्रामिंग भाषा]] तक विस्तारित किया है, [http://www.cduce.org/ CDuce होमपेज] देखें।
* [[CDuce|'''सीड्यूस(CDuce)''']]- सीड्यूस एक्सड्यूस को एक सामान्य-उद्देश्यीय [[कार्यात्मक प्रोग्रामिंग भाषा]] तक विस्तारित करता है, [http://www.cduce.org/ सीड्यूस होमपेज] देखें।
* XACT: XACT XML रूपांतरणों की प्रोग्रामिंग के लिए एक जावा-आधारित प्रणाली है। उल्लेखनीय विशेषताओं में एक्सएमएल टेम्पलेट्स को अपरिवर्तनीय मूल्यों और एक्सएमएल स्कीमा प्रकारों ([http://www.brics.dk/Xact/XACT होम पेज]) का उपयोग करके टाइप सुरक्षा सुनिश्चित करने के लिए एक स्थिर विश्लेषण शामिल है।
* '''एक्सएसीटी''' '''(XACT)'''- एक्सएसीटी एक्सएमएल रूपांतरण प्रोग्रामिंग के लिए एक जावा-आधारित प्रणाली है। उल्लेखनीय विशेषताओं में एक्सएमएल टेम्पलेट्स को अपरिवर्तनीय मानों के रूप में और एक्सएमएल स्कीमा प्रकारों (एक्सएसीटी [http://www.brics.dk/Xact/XACT होम पेज]) का उपयोग करके प्रकार की सुरक्षा सुनिश्चित करने के लिए एक स्थिर विश्लेषण सम्मिलित है।
* XFun: XFun श्रेडिंग निर्देश प्रदान करते हुए XML डेटा ट्री के बीच परिवर्तनों को परिभाषित करने के लिए एक कार्यात्मक भाषा X-Fun है। X-Fun को आउटपुट श्रेडिंग के साथ Frisch की XStream भाषा के विस्तार के रूप में समझा जा सकता है, जबकि पैटर्न मैचिंग को XPath एक्सप्रेशंस के साथ ट्री नेविगेशन द्वारा प्रतिस्थापित किया जाता है। ([http://hal.inria.fr/hal-00806343])
*'''एक्स-फन (XFun)'''- एक्स-फन एक कार्यात्मक भाषा है एक्स-फन, जो श्रेडिंग निर्देश प्रदान करते हुए एक्सएमएल डेटा ट्री के बीच रूपांतरणों को परिभाषित करता है। एक्स-फन को आउटपुट श्रेडिंग के साथ फ्रिस्क की एक्सस्ट्रीम भाषा के विस्तार के रूप में समझा जा सकता है, जबकि पैटर्न मिलान को XPath अभिव्यक्तियों के साथ ट्री नेविगेशन द्वारा प्रतिस्थापित किया जाता है।([http://hal.inria.fr/hal-00806343])
* [[ Xstream ]]: सीएएमएल पर आधारित एक्सएमएल दस्तावेजों के लिए एक्सस्ट्रीम एक सरल कार्यात्मक रूपांतरण भाषा है। XStream में लिखे गए XML परिवर्तनों का मूल्यांकन स्ट्रीमिंग में किया जाता है: जब संभव हो, आउटपुट के कुछ हिस्सों की गणना और उत्पादन किया जाता है, जबकि इनपुट दस्तावेज़ अभी भी पार्स किया जा रहा है। इस प्रकार कुछ परिवर्तन विशाल XML दस्तावेज़ों पर लागू किए जा सकते हैं जो स्मृति में भी फिट नहीं होंगे। XStream कंपाइलर को [[CeCILL]] [[ मुफ्त सॉफ्टवेयर लाइसेंस ]] की शर्तों के तहत वितरित किया जाता है।
*[[ Xstream |'''एक्सस्ट्रीम (XStream)''']]- एक्सस्ट्रीम सीएएमएल (CAML) पर आधारित एक्सएमएल दस्तावेजों के लिए एक सरल कार्यात्मक रूपांतरण भाषा है। एक्सस्ट्रीम में लिखे गए एक्सएमएल रूपांतरणों का मूल्यांकन स्ट्रीमिंग में किया जाता है- जब संभव हो, आउटपुट के कुछ भागों की गणना और उत्पादन किया जाता है जबकि इनपुट दस्तावेज़ अभी भी पार्स किया जा रहा है। इस प्रकार कुछ रूपांतरणों को बड़े एक्सएमएल दस्तावेज़ों पर लागू किया जा सकता है जो मेमोरी में भी फिट नहीं होंगे। एक्सस्ट्रीम कंपाइलर को [[CeCILL|सीईसीआईएलएल (CeCILL)]] [[ मुफ्त सॉफ्टवेयर लाइसेंस |मुफ्त सॉफ्टवेयर लाइसेंस]] की शर्तों के तहत वितरित किया जाता है।  
* [[एक्सटैटिक]]: एक्सटैटिक [[एक्सड्यूस]] से सी शार्प (प्रोग्रामिंग लैंग्वेज)|सी#, देखें [http://www.cis.upenn.edu/~बीसीपियर्स/एक्सटैटिक/एक्सटैटिक होमपेज].
*[[एक्सटैटिक|'''एक्सटैटिक (Xtatic)''']]- एक्सटैटिक [[एक्सड्यूस]] से C# तक विधियों को लागू करता है, एक्सटैटिक [http://www.cis.upenn.edu/~बीसीपियर्स/एक्सटैटिक/एक्सटैटिक होमपेज] देखें।
* [[HaXml]]: HaXml [[ हास्केल (प्रोग्रामिंग भाषा) ]] में XML रूपांतरण लिखने के लिए एक पुस्तकालय और उपकरणों का संग्रह है। यह भी देखें [http://www.cs.york.ac.uk/fp/HaXml/ 1999 में प्रकाशित HaXml के बारे में यह पेपर] और [http://www-106.ibm.com/developerworks/xml/library/x -matters14.html यह IBM DeveloperWorks लेख]और हाल ही के [https://web.archive.org/web/20060422010402/http://www.flightlab.com/~joe/hxml/ HXML] और हास्केल एक्सएमएल टूलबॉक्स ([https://web.archive .org/web/20080622124011/http://www.fh-wedel.de/~si/HXmlToolbox/ HXT]), जो HaXml और HXML के विचारों पर आधारित है, लेकिन XML प्रोसेसिंग के लिए अधिक सामान्य दृष्टिकोण अपनाता है।
* [[HaXml|'''एचएएक्सएमएल (HaXml)''']]- एचएएक्सएमएल [[ हास्केल (प्रोग्रामिंग भाषा) |हास्केल]] में एक्सएमएल रूपांतरण लिखने के लिए एक लाइब्रेरी और उपकरण का संग्रह है। [http://www.cs.york.ac.uk/fp/HaXml/ 1999 में प्रकाशित एचएएक्सएमएल के बारे में यह पेपर] और यह [http://www-106.ibm.com/developerworks/xml/library/x आईबीएम (IBM) डेवलपरवर्क्स लेख] भी देखें। आधुनिक एचएक्सएमएल (HXML) और हास्केल [https://web.archive एक्सएमएल टूलबॉक्स (एचएक्सटी (HXT))] भी देखें, जो एचएएक्सएमएल और [https://web.archive.org/web/20060422010402/http://www.flightlab.com/~joe/hxml/ एचएक्सएमएल] के विचारों पर आधारित है लेकिन एक्सएमएल प्रोसेसिंग के लिए अधिक सामान्य दृष्टिकोण अपनाता है।  
* XMLambda: XMLambda (XMλ) का वर्णन एरिक मीजर (कंप्यूटर वैज्ञानिक) और [[मार्क शील्ड्स (कंप्यूटर वैज्ञानिक)]] द्वारा 1999 के पेपर में किया गया है। कोई कार्यान्वयन उपलब्ध नहीं है। देखें [https://web.archive.org/web/20051123030818/http://www.cartesian Closed.com/pub/xmlambda/ XMLambda होम पेज]
*'''एक्सएमलैम्ब्डा'''- एक्सएमलैम्ब्डा (एक्सएमλ) का वर्णन एरिक मीजर और [[मार्क शील्ड्स (कंप्यूटर वैज्ञानिक)|मार्क शील्ड्स]] द्वारा 1999 के पेपर में किया गया है। कोई कार्यान्वयन उपलब्ध नहीं है। [https://web.archive.org/web/20051123030818/http://www.cartesian एक्सएमलैम्ब्डा होम पेज] देखें।
* [[फ़्लेक्सएमएल]]: फ़्लेक्सएमएल एक एक्सएमएल प्रोसेसिंग भाषा है जिसे सबसे पहले क्रिस्टोफ़र रोज़ ने लागू किया था। इसका दृष्टिकोण डीटीडी के नियमों के किसी भी सबसेट के लिए प्रसंस्करण निर्देशों को निर्दिष्ट करने वाले एक्सएमएल [[दस्तावेज़ प्रकार परिभाषा]] में क्रियाएं जोड़ना है।
* [[फ़्लेक्सएमएल|'''फ्लेएक्सएमएल (FleXML)''']]- फ्लेएक्सएमएल एक एक्सएमएल प्रोसेसिंग भाषा है जिसे सबसे पहले क्रिस्टोफर रोज़ द्वारा कार्यान्वित किया गया था। इसका दृष्टिकोण डीटीडी (DTD) के नियमों के किसी भी उपसमूह के लिए प्रसंस्करण निर्देशों को निर्दिष्ट करते हुए एक्सएमएल [[दस्तावेज़ प्रकार परिभाषा|डीटीडी]] में क्रियाएं जोड़ना है।  
* स्काला: [[ स्काला (प्रोग्रामिंग भाषा) ]] एक सामान्य-उद्देश्य वाली कार्यात्मक और वस्तु-उन्मुख भाषा है, जो मानक XML पुस्तकालयों के साथ-साथ XML पैटर्न मिलान, शाब्दिक और भावों के रूप में XML परिवर्तन के लिए विशिष्ट समर्थन के साथ है।<ref>{{Cite journal|title=स्कैला में एक्सएमएल प्रोसेसिंग|first1=Dino|last1=Fancellu|first2=William|last2=Narmontas|date=June 2014|journal=XML London 2014|doi=10.14337/XMLLondon14.Narmontas01|pages=63–75|isbn=978-0-9926471-1-7|doi-access=free}}</ref>
* '''स्काला'''- [[ स्काला (प्रोग्रामिंग भाषा) |स्काला]] एक सामान्य-उद्देश्य वाली कार्यात्मक और ऑब्जेक्ट-ओरिएंटेड भाषा है जो मानक एक्सएमएल लाइब्रेरीज़ के साथ-साथ एक्सएमएल पैटर्न मिलान, शाब्दिक और अभिव्यक्तियों के रूप में एक्सएमएल रूपांतरण के लिए विशिष्ट समर्थन प्रदान करती है।<ref>{{Cite journal|title=स्कैला में एक्सएमएल प्रोसेसिंग|first1=Dino|last1=Fancellu|first2=William|last2=Narmontas|date=June 2014|journal=XML London 2014|doi=10.14337/XMLLondon14.Narmontas01|pages=63–75|isbn=978-0-9926471-1-7|doi-access=free}}</ref>
* [[LINQ to XML]]: LINQ to XML एक .NET 3.5 सिंटैक्स और प्रोग्रामिंग API है जो C#, VB और कुछ अन्य .NET भाषाओं में उपलब्ध है। LINQ मुख्य रूप से एक क्वेरी भाषा के रूप में डिज़ाइन किया गया है, लेकिन यह XML रूपांतरणों का भी समर्थन करता है।
* [[LINQ to XML|'''एलआईएनक्यू (LINQ) से एक्सएमएल (XML)''']]- एलआईएनक्यू से एक्सएमएल एक .NET 3.5 सिंटैक्स और प्रोग्रामिंग एपीआई (API) है जो C#, वीबी (VB) और कुछ अन्य .NET भाषाओं में उपलब्ध है। एलआईएनक्यू को मुख्य रूप से क्वेरी भाषा के रूप में डिज़ाइन किया गया है, लेकिन यह एक्सएमएल रूपांतरणों का भी समर्थन करता है।  


== यह भी देखें ==
== यह भी देखें ==
* [[फ़िल्टर (सॉफ्टवेयर)]]
* [[फ़िल्टर (सॉफ्टवेयर)|फ़िल्टर (सॉफ़्टवेयर)]]
* [[फ़िल्टर (यूनिक्स)]]
* [[फ़िल्टर (यूनिक्स)]]
* [[वेब टेम्पलेट]]
* [[वेब टेम्पलेट]]
* [[वेब टेम्पलेट सिस्टम]]
* [[वेब टेम्पलेट सिस्टम]]
* [[टेम्पलेट इंजन (वेब)]]
* [[टेम्पलेट इंजन (वेब)]]
* [[ट्रिटियम (प्रोग्रामिंग भाषा)]]
* [[ट्रिटियम (प्रोग्रामिंग भाषा)|ट्राइटियम (प्रोग्रामिंग भाषा)]]


==संदर्भ==
==संदर्भ==
{{Reflist}}
{{Reflist}}


{{DEFAULTSORT:Xml Transformation Language}}[[Category: रूपांतरण भाषाएँ]] [[Category: XML- आधारित मानक]]
{{DEFAULTSORT:Xml Transformation Language}}


 
[[Category:Created On 14/06/2023|Xml Transformation Language]]
 
[[Category:Lua-based templates|Xml Transformation Language]]
[[Category: Machine Translated Page]]
[[Category:Machine Translated Page|Xml Transformation Language]]
[[Category:Created On 14/06/2023]]
[[Category:Pages with script errors|Xml Transformation Language]]
[[Category:Templates Vigyan Ready|Xml Transformation Language]]
[[Category:Templates that add a tracking category|Xml Transformation Language]]
[[Category:Templates that generate short descriptions|Xml Transformation Language]]
[[Category:Templates using TemplateData|Xml Transformation Language]]
[[Category:XML- आधारित मानक|Xml Transformation Language]]
[[Category:रूपांतरण भाषाएँ|Xml Transformation Language]]

Latest revision as of 12:24, 5 July 2023

एक्सएमएल से एक्सएमएल रूपांतरण

एक्सएमएल (XML) रूपांतरण भाषा एक प्रोग्रामिंग भाषा है जिसे विशेष रूप से इनपुट एक्सएमएल दस्तावेज़ को आउटपुट दस्तावेज़ में बदलने के लिए डिज़ाइन किया गया है जो कुछ विशिष्ट लक्ष्य को पूरा करता है।

परिवर्तन की दो विशेष परिस्थितियाँ हैं-

  • एक्सएमएल से एक्सएमएल- आउटपुट दस्तावेज एक एक्सएमएल दस्तावेज है।
  • एक्सएमएल से डेटा- आउटपुट दस्तावेज़ एक बाइट स्ट्रीम है।

एक्सएमएल से एक्सएमएल

जैसे कि एक्सएमएल से एक्सएमएल रूपांतरण एक एक्सएमएल दस्तावेज़ को आउटपुट करता है, एक्सएमएल से एक्सएमएल रूपांतरण श्रृंखलाएँ रूपांतरण पाइपलाइन बनाती हैं।

एक्सएमएल से डेटा

एक्सएमएल (एक्स्टेंसिबल मार्कअप लैंग्वेज) से डेटा रूपांतरण में कुछ महत्वपूर्ण स्थितियाँ सम्मिलित हैं। सबसे उल्लेखनीय है एक्सएमएल से एचटीएमएल (HTML) (हाइपरटेक्स्ट मार्कअप लैंग्वेज), क्योंकि एचटीएमएल दस्तावेज़ एक्सएमएल दस्तावेज़ नहीं है।

एसजीएमएल (SGML) उत्पत्ति

प्रारंभिक रूपांतरण भाषाएं एसजीएमएल प्रोफ़ाइल के रूप में एक्सएमएल के आगमन से पहले की हैं, और इस प्रकार विशेष रूप से एक्सएमएल के स्थान पर मनमाने ढंग से एसजीएमएल में इनपुट स्वीकार करती हैं। इनमें एसजीएमएल-से-एसजीएमएल लिंक प्रक्रिया परिभाषा (एलपीडी) प्रारूप सम्मिलित है, जिसे एसजीएमएल मानक के भाग के रूप में परिभाषित किया गया है एसजीएमएल (लेकिन एक्सएमएल नहीं) में, एलपीडी (LPD) फ़ाइल को LINKTYPE घोषणा द्वारा दस्तावेज़ से ही संदर्भित किया जा सकता है, डीटीडी (DTD) के लिए उपयोग की जाने वाली DOCTYPE घोषणा के समान।[1] एलपीडी की कुछ कमियों को दूर करने वाली ऐसी अन्य रूपांतरण भाषाओं में दस्तावेज़ शैली शब्दार्थ और विशिष्टता भाषा (डीएसएसएसएल) और ओमनीमार्क सम्मिलित हैं। नई रूपांतरण भाषाएँ विशेष रूप से एक्सएमएल को लक्षित करती हैं, और इस प्रकार केवल एक्सएमएल को स्वीकार करती हैं, मनमाने ढंग से एसजीएमएल को नहीं।

विद्यमान भाषाएँ

  • एक्सएसएलटी- एक्सएसएलटी (XSLT) सबसे प्रसिद्ध एक्सएमएल रूपांतरण भाषा है। एक्सएसएलटी 1.0 W3C अनुशंसा को XPath 1.0 के साथ 1999 में प्रकाशित किया गया था, और तब से इसे व्यापक रूप से लागू किया गया है। एक्सएसएलटी 2.0 जनवरी 2007 से W3C अनुशंसा बन गयी है और सैक्सन 8 जैसे विनिर्देश के कार्यान्वयन पहले से ही उपलब्ध हैं।
  • एक्सक्वेरी (XQuery)- नाम में "क्वेरी" होने के बावजूद, एक्सक्वेरी एक पूर्ण कार्यात्मक भाषा है। यह माइक्रोसॉफ्ट, ओरेकल, डीबी 2 (DB2), मार्कलॉजिक इत्यादि द्वारा उपयोग किया जाने वाला एक वास्तविक मानक है, यह एक्सआरएक्स (XRX) वेब प्रोग्रामिंग मॉडल की नींव है, और इसमें संस्करण 1.0 के लिए W3C अनुशंसा है। एक्सक्वेरी को एक्सएसएलटी की तरह एक्सएमएल में नहीं लिखा गया है, इसलिए इसका सिंटैक्स बहुत हल्का है। यह भाषा XPath 2.0 पर आधारित है। एक्सक्वेरी प्रोग्राम में एक्सएसएलटी की तरह दुष्प्रभाव नहीं हो सकते हैं और यह लगभग समान क्षमताएं (उदाहरण के लिए- चर और फ़ंक्शन घोषित करना, अनुक्रमों पर पुनरावृत्ति करना, W3C स्कीमा प्रकारों का उपयोग करना), प्रदान करता है भले ही प्रोग्राम सिंटैक्स काफी भिन्न हो। एक्सक्वेरी तर्क आधारित है, फॉर (FOR), वेयर (WHERE) और फ़ंक्शन संरचना (उदाहरण के लिए fn:concat("<html>", generate-body(), "</html>")) का उपयोग करते हुए। इसके विपरीत, एक्सएसएलटी डेटा-संचालित (पुश प्रोसेसिंग मॉडल) है जहां इनपुट दस्तावेज़ की कुछ शर्तें कोड को उस क्रम में निष्पादित करने के स्थान पर टेम्पलेट्स के निष्पादन को ट्रिगर करती हैं जिसमें इसे लिखा गया है।
  • एक्सप्रोक (XProc) - एक्सप्रोक एक एक्सएमएल पाइपलाइन भाषा है। XProc 1.0 W3C अनुशंसा मई 2010 में प्रकाशित की गई थी।
  • एक्सएमएल दस्तावेज़ रूपांतरण- एक्सएमएल दस्तावेज़ों पर सरल रूपांतरण करने के लिए एक माइक्रोसॉफ्ट मानक है। मुख्य रूप से IIS Web.config फ़ाइलें (कॉन्फिग रूपांतरण) बनाने के लिए, अन्य कार्यान्वयन इसे जेनेरिक कॉन्फ़िग फ़ाइलों के लिए निर्माण समय (स्लो चीता) या कमांड लाइन (CTT) से उपयोग करने की अनुमति देते हैं।
  • एसटीएक्स- एसटीएक्स (एक्सएमएल के लिए स्ट्रीमिंग रूपांतरण) एक्सएसएलटी से प्रेरित है लेकिन इसे वन-पास रूपांंतरण प्रक्रिया की अनुमति देने के लिए डिज़ाइन किया गया है जो स्ट्रीमिंग को कभी नहीं रोकता है। कार्यान्वयन जावा (जूस्ट) और पर्ल (एक्सएमएल::एसटीएक्स) में उपलब्ध हैं।
  • एक्सएमएल स्क्रिप्ट- एक्सएमएल स्क्रिप्ट पर्ल से प्रेरित एक अनिवार्य स्क्रिप्टिंग भाषा है जो एक्सएमएल सिंटैक्स का उपयोग करती है। एक्सएमएल स्क्रिप्ट इनपुट ट्री से नोड्स का चयन करने के लिए XPath और उसके स्वामित्व वाले DSLPath का समर्थन करती है।
  • एफएक्सटी- एफएक्सटी एक कार्यात्मक एक्सएमएल रूपांतरण उपकरण है, जिसे मानक एमएल (ML) में कार्यान्वित किया गया है।
  • एक्सड्यूस (XDuce)- एक्सएसएलटी की तुलना में एक्सड्यूस हल्के सिंटैक्स वाली एक टाइप की गई भाषा है। यह एमएल (ML) में लिखा गया है
  • सीड्यूस(CDuce)- सीड्यूस एक्सड्यूस को एक सामान्य-उद्देश्यीय कार्यात्मक प्रोग्रामिंग भाषा तक विस्तारित करता है, सीड्यूस होमपेज देखें।
  • एक्सएसीटी (XACT)- एक्सएसीटी एक्सएमएल रूपांतरण प्रोग्रामिंग के लिए एक जावा-आधारित प्रणाली है। उल्लेखनीय विशेषताओं में एक्सएमएल टेम्पलेट्स को अपरिवर्तनीय मानों के रूप में और एक्सएमएल स्कीमा प्रकारों (एक्सएसीटी होम पेज) का उपयोग करके प्रकार की सुरक्षा सुनिश्चित करने के लिए एक स्थिर विश्लेषण सम्मिलित है।
  • एक्स-फन (XFun)- एक्स-फन एक कार्यात्मक भाषा है एक्स-फन, जो श्रेडिंग निर्देश प्रदान करते हुए एक्सएमएल डेटा ट्री के बीच रूपांतरणों को परिभाषित करता है। एक्स-फन को आउटपुट श्रेडिंग के साथ फ्रिस्क की एक्सस्ट्रीम भाषा के विस्तार के रूप में समझा जा सकता है, जबकि पैटर्न मिलान को XPath अभिव्यक्तियों के साथ ट्री नेविगेशन द्वारा प्रतिस्थापित किया जाता है।([1])
  • एक्सस्ट्रीम (XStream)- एक्सस्ट्रीम सीएएमएल (CAML) पर आधारित एक्सएमएल दस्तावेजों के लिए एक सरल कार्यात्मक रूपांतरण भाषा है। एक्सस्ट्रीम में लिखे गए एक्सएमएल रूपांतरणों का मूल्यांकन स्ट्रीमिंग में किया जाता है- जब संभव हो, आउटपुट के कुछ भागों की गणना और उत्पादन किया जाता है जबकि इनपुट दस्तावेज़ अभी भी पार्स किया जा रहा है। इस प्रकार कुछ रूपांतरणों को बड़े एक्सएमएल दस्तावेज़ों पर लागू किया जा सकता है जो मेमोरी में भी फिट नहीं होंगे। एक्सस्ट्रीम कंपाइलर को सीईसीआईएलएल (CeCILL) मुफ्त सॉफ्टवेयर लाइसेंस की शर्तों के तहत वितरित किया जाता है।
  • एक्सटैटिक (Xtatic)- एक्सटैटिक एक्सड्यूस से C# तक विधियों को लागू करता है, एक्सटैटिक होमपेज देखें।
  • एचएएक्सएमएल (HaXml)- एचएएक्सएमएल हास्केल में एक्सएमएल रूपांतरण लिखने के लिए एक लाइब्रेरी और उपकरण का संग्रह है। 1999 में प्रकाशित एचएएक्सएमएल के बारे में यह पेपर और यह आईबीएम (IBM) डेवलपरवर्क्स लेख भी देखें। आधुनिक एचएक्सएमएल (HXML) और हास्केल एक्सएमएल टूलबॉक्स (एचएक्सटी (HXT)) भी देखें, जो एचएएक्सएमएल और एचएक्सएमएल के विचारों पर आधारित है लेकिन एक्सएमएल प्रोसेसिंग के लिए अधिक सामान्य दृष्टिकोण अपनाता है।
  • एक्सएमलैम्ब्डा- एक्सएमलैम्ब्डा (एक्सएमλ) का वर्णन एरिक मीजर और मार्क शील्ड्स द्वारा 1999 के पेपर में किया गया है। कोई कार्यान्वयन उपलब्ध नहीं है। एक्सएमलैम्ब्डा होम पेज देखें।
  • फ्लेएक्सएमएल (FleXML)- फ्लेएक्सएमएल एक एक्सएमएल प्रोसेसिंग भाषा है जिसे सबसे पहले क्रिस्टोफर रोज़ द्वारा कार्यान्वित किया गया था। इसका दृष्टिकोण डीटीडी (DTD) के नियमों के किसी भी उपसमूह के लिए प्रसंस्करण निर्देशों को निर्दिष्ट करते हुए एक्सएमएल डीटीडी में क्रियाएं जोड़ना है।
  • स्काला- स्काला एक सामान्य-उद्देश्य वाली कार्यात्मक और ऑब्जेक्ट-ओरिएंटेड भाषा है जो मानक एक्सएमएल लाइब्रेरीज़ के साथ-साथ एक्सएमएल पैटर्न मिलान, शाब्दिक और अभिव्यक्तियों के रूप में एक्सएमएल रूपांतरण के लिए विशिष्ट समर्थन प्रदान करती है।[2]
  • एलआईएनक्यू (LINQ) से एक्सएमएल (XML)- एलआईएनक्यू से एक्सएमएल एक .NET 3.5 सिंटैक्स और प्रोग्रामिंग एपीआई (API) है जो C#, वीबी (VB) और कुछ अन्य .NET भाषाओं में उपलब्ध है। एलआईएनक्यू को मुख्य रूप से क्वेरी भाषा के रूप में डिज़ाइन किया गया है, लेकिन यह एक्सएमएल रूपांतरणों का भी समर्थन करता है।

यह भी देखें

संदर्भ

  1. Goldfarb, Charles F. (1990). Clause 12—Markup Declarations: Link Process Definition. pp. 433–449. ISBN 0-19-853737-9. {{cite book}}: |work= ignored (help)
  2. Fancellu, Dino; Narmontas, William (June 2014). "स्कैला में एक्सएमएल प्रोसेसिंग". XML London 2014: 63–75. doi:10.14337/XMLLondon14.Narmontas01. ISBN 978-0-9926471-1-7.