एक्सएमएल परिवर्तन भाषा

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

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

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

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

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

मौजूदा भाषाएँ

 * XSLT: XSL Transformations सबसे प्रसिद्ध XML रूपांतरण भाषा है। XSLT 1.0 W3C अनुशंसा को 1999 में XPath 1.0 के साथ प्रकाशित किया गया था, और तब से इसे व्यापक रूप से लागू किया गया है। XSLT 2.0 जनवरी 2007 से W3C की सिफारिश बन गया है और सैक्सन XSLT जैसे विनिर्देश के कार्यान्वयन पहले से ही उपलब्ध हैं।
 * XQuery: नाम में क्वेरी होने के बावजूद XQuery एक पूर्ण कार्यात्मक भाषा है। यह Microsoft, Oracle, DB2, MarkLogic, आदि द्वारा उपयोग किया जाने वाला एक वास्तविक मानक है, जो XRX (वेब ​​एप्लिकेशन आर्किटेक्चर) वेब प्रोग्रामिंग मॉडल की नींव है, और संस्करण 1.0 के लिए W3C अनुशंसा है। XQuery को XSLT की तरह XML में ही नहीं लिखा गया है, इसलिए इसका सिंटैक्स काफी हल्का है। भाषा XPath 2.0 पर आधारित है। XQuery प्रोग्राम में साइड इफेक्ट (कंप्यूटर विज्ञान) नहीं हो सकता है। साइड-इफेक्ट्स, XSLT की तरह और लगभग समान क्षमताएं प्रदान करता है (उदाहरण के लिए: चर और फ़ंक्शंस घोषित करना, अनुक्रमों पर पुनरावृत्ति करना, W3C स्कीमा प्रकारों का उपयोग करना), भले ही प्रोग्राम सिंटैक्स काफी हो अलग। XQuery, FOR, WHERE और फ़ंक्शन संरचना (जैसे fn:concat(, generate-body, )) का उपयोग करके तर्क संचालित है। इसके विपरीत, XSLT डेटा-संचालित (पुश प्रोसेसिंग मॉडल) है जहां इनपुट दस्तावेज़ की कुछ शर्तें टेम्पलेट के निष्पादन को ट्रिगर करती हैं, न कि कोड को उस क्रम में निष्पादित करने के बजाय जिस क्रम में इसे लिखा गया है।
 * एक्सप्रोक: एक्सप्रोक एक एक्सएमएल पाइपलाइन भाषा है। XProc 1.0 W3C अनुशंसा मई 2010 में प्रकाशित हुई थी।
 * XML दस्तावेज़ परिवर्तन: XML दस्तावेज़ों पर सरल परिवर्तन करने के लिए एक Microsoft मानक है। मुख्य रूप से IIS Web.config फाइल (कॉन्फिग ट्रांसफॉर्म) बनाने के लिए, अन्य कार्यान्वयन इसे सामान्य कॉन्फिग फाइलों के लिए बिल्ड टाइम (स्लो चीता) या कमांड लाइन (CTT) से उपयोग करने की अनुमति देते हैं।
 * एसटीएक्सएक्सएमएल के लिए स्ट्रीमिंग रूपांतरण ट्रांसफॉर्मेशन (एक्सएमएल के लिए स्ट्रीमिंग ट्रांसफॉर्मेशनसैक्सन एक्सएसएलटी से प्रेरित है लेकिन इसे वन-पास ट्रांसफॉर्मेशन प्रक्रिया की अनुमति देने के लिए डिजाइन किया गया है जो स्ट्रीमिंग को कभी नहीं रोकता है। कार्यान्वयन जावा में उपलब्ध हैं (Joost) और पर्ल (//www.gingerall.com/charlie/ga/xml/p_stx.xml?s=org XML::STX).
 * एक्सएमएल स्क्रिप्ट: एक्सएमएल स्क्रिप्ट पर्ल से प्रेरित एक अनिवार्य स्क्रिप्टिंग भाषा है जो एक्सएमएल सिंटैक्स का उपयोग करती है। एक्सएमएल स्क्रिप्ट इनपुट ट्री से नोड्स का चयन करने के लिए XPath और उसके मालिकाना DSLPath का समर्थन करती है।
 * एफएक्सटी: एफएक्सटी एक कार्यात्मक एक्सएमएल परिवर्तन उपकरण है, जिसे एमएल (प्रोग्रामिंग भाषा) में लागू किया गया है।
 * XDuce: XDuce XSLT की तुलना में हल्के सिंटैक्स वाली टाइप की गई भाषा है। यह एमएल में लिखा है।
 * CDuce: CDuce ने XDuce को एक सामान्य-उद्देश्य कार्यात्मक प्रोग्रामिंग भाषा तक विस्तारित किया है, CDuce होमपेज देखें।
 * XACT: XACT XML रूपांतरणों की प्रोग्रामिंग के लिए एक जावा-आधारित प्रणाली है। उल्लेखनीय विशेषताओं में एक्सएमएल टेम्पलेट्स को अपरिवर्तनीय मूल्यों और एक्सएमएल स्कीमा प्रकारों (होम पेज) का उपयोग करके टाइप सुरक्षा सुनिश्चित करने के लिए एक स्थिर विश्लेषण शामिल है।
 * XFun: XFun श्रेडिंग निर्देश प्रदान करते हुए XML डेटा ट्री के बीच परिवर्तनों को परिभाषित करने के लिए एक कार्यात्मक भाषा X-Fun है। X-Fun को आउटपुट श्रेडिंग के साथ Frisch की XStream भाषा के विस्तार के रूप में समझा जा सकता है, जबकि पैटर्न मैचिंग को XPath एक्सप्रेशंस के साथ ट्री नेविगेशन द्वारा प्रतिस्थापित किया जाता है।
 * Xstream : सीएएमएल पर आधारित एक्सएमएल दस्तावेजों के लिए एक्सस्ट्रीम एक सरल कार्यात्मक रूपांतरण भाषा है। XStream में लिखे गए XML परिवर्तनों का मूल्यांकन स्ट्रीमिंग में किया जाता है: जब संभव हो, आउटपुट के कुछ हिस्सों की गणना और उत्पादन किया जाता है, जबकि इनपुट दस्तावेज़ अभी भी पार्स किया जा रहा है। इस प्रकार कुछ परिवर्तन विशाल XML दस्तावेज़ों पर लागू किए जा सकते हैं जो स्मृति में भी फिट नहीं होंगे। XStream कंपाइलर को CeCILL मुफ्त सॉफ्टवेयर लाइसेंस  की शर्तों के तहत वितरित किया जाता है।
 * एक्सटैटिक: एक्सटैटिक एक्सड्यूस से सी शार्प (प्रोग्रामिंग लैंग्वेज)|सी#, देखें होमपेज.
 * HaXml: HaXml हास्केल (प्रोग्रामिंग भाषा)  में XML रूपांतरण लिखने के लिए एक पुस्तकालय और उपकरणों का संग्रह है। यह भी देखें 1999 में प्रकाशित HaXml के बारे में यह पेपर और -matters14.html यह IBM DeveloperWorks लेख। और हाल ही के HXML और हास्केल एक्सएमएल टूलबॉक्स (.org/web/20080622124011/http://www.fh-wedel.de/~si/HXmlToolbox/ HXT), जो HaXml और HXML के विचारों पर आधारित है, लेकिन XML प्रोसेसिंग के लिए अधिक सामान्य दृष्टिकोण अपनाता है।
 * XMLambda: XMLambda (XMλ) का वर्णन एरिक मीजर (कंप्यूटर वैज्ञानिक) और मार्क शील्ड्स (कंप्यूटर वैज्ञानिक) द्वारा 1999 के पेपर में किया गया है। कोई कार्यान्वयन उपलब्ध नहीं है। देखें Closed.com/pub/xmlambda/ XMLambda होम पेज।
 * फ़्लेक्सएमएल: फ़्लेक्सएमएल एक एक्सएमएल प्रोसेसिंग भाषा है जिसे सबसे पहले क्रिस्टोफ़र रोज़ ने लागू किया था। इसका दृष्टिकोण डीटीडी के नियमों के किसी भी सबसेट के लिए प्रसंस्करण निर्देशों को निर्दिष्ट करने वाले एक्सएमएल दस्तावेज़ प्रकार परिभाषा में क्रियाएं जोड़ना है।
 * स्काला: स्काला (प्रोग्रामिंग भाषा)  एक सामान्य-उद्देश्य वाली कार्यात्मक और वस्तु-उन्मुख भाषा है, जो मानक XML पुस्तकालयों के साथ-साथ XML पैटर्न मिलान, शाब्दिक और भावों के रूप में XML परिवर्तन के लिए विशिष्ट समर्थन के साथ है।
 * LINQ to XML: LINQ to XML एक .NET 3.5 सिंटैक्स और प्रोग्रामिंग API है जो C#, VB और कुछ अन्य .NET भाषाओं में उपलब्ध है। LINQ मुख्य रूप से एक क्वेरी भाषा के रूप में डिज़ाइन किया गया है, लेकिन यह XML रूपांतरणों का भी समर्थन करता है।

यह भी देखें

 * फ़िल्टर (सॉफ्टवेयर)
 * फ़िल्टर (यूनिक्स)
 * वेब टेम्पलेट
 * वेब टेम्पलेट सिस्टम
 * टेम्पलेट इंजन (वेब)
 * ट्रिटियम (प्रोग्रामिंग भाषा)