एक्सएसएलटी: Difference between revisions

From Vigyanwiki
No edit summary
No edit summary
 
(31 intermediate revisions by 4 users not shown)
Line 27: Line 27:
| wikibooks =  
| wikibooks =  
}}
}}
एक्सएसएलटी (एक्स्टेंसिबल स्टाइलशीट लैंग्वेज ट्रांसफॉर्मेशन) मूल रूप से [[एक्सएमएल]] दस्तावेजों को अन्य एक्सएमएल दस्तावेजों,<ref name="परिवर्तन">{{cite web|url=http://www.w3.org/standards/xml/transformation |title=परिवर्तन|date=2012-09-19}}</ref> या वेब पेजों के लिए [[HTML|एचटीएमएल]] जैसे अन्य प्रारूपों, सादे पाठ या एक्सएसएल फॉर्मेटिंग ऑब्जेक्ट्स में बदलने के लिए डिज़ाइन की गई भाषा है, जिसे बाद में अन्य प्रारूपों में परिवर्तित किया जा सकता है। जैसे पीडीएफ, पोस्टस्क्रिप्ट और पीएनजी।<ref>{{cite web|url=http://www.w3.org/TR/xslt#output |title=XML Output Method|date=2012-09-19}}</ref> XSLT 1.0 विनिर्देशन के बाद के अपडेट में JSON और प्लेन-टेक्स्ट ट्रांसफ़ॉर्मेशन के लिए समर्थन जोड़ा गया था।
'''एक्सएसएलटी''' (विस्तारणीय शैली पत्रक भाषा परिवर्तन) मूल रूप से [[एक्सएमएल]] दस्तावेजों को,<ref name="परिवर्तन">{{cite web|url=http://www.w3.org/standards/xml/transformation |title=परिवर्तन|date=2012-09-19}}</ref> या वेब पेजों के लिए [[HTML|एचटीएमएल]] जैसे अन्य प्रारूपों को, साधारण टेक्स्ट या एक्सएसएल फॉर्मेटिंग वस्तुओं में बदलने के लिए डिज़ाइन की गई भाषा होती है, जिसे बाद में अन्य प्रारूपों में परिवर्तित किया जा सकता है। जैसे पीडीएफ, पोस्टस्क्रिप्ट और पीएनजी।<ref>{{cite web|url=http://www.w3.org/TR/xslt#output |title=XML Output Method|date=2012-09-19}}</ref> एक्सएसएलटी 1.0 विनिर्देशन के बाद के अपडेट में जेएसओएन और सिंपल-टेक्स्ट परिवर्तन के लिए समर्थन जोड़ा गया था।  


अगस्त 2022 तक, भाषा का सबसे हालिया स्थिर संस्करण एक्सएसएलटी 3.0 है, जिसने जून 2017 में सिफारिश की स्थिति हासिल की।
अगस्त 2022 तक, भाषा का सबसे हाल ही का स्थिर संस्करण एक्सएसएलटी 3.0 है, जिसने जून 2017 में सिफारिश की स्थिति प्राप्त की थी।


एक्सएसएलटी 3.0 कार्यान्वयन Java, .NET, C/C++, Python, PHP और NodeJS को सपोर्ट करता है। एक एक्सएसएलटी 3.0 Javascript लाइब्रेरी को वेब ब्राउज़र में भी होस्ट किया जा सकता है। आधुनिक वेब ब्राउज़र में एक्सएसएलटी 1.0 के लिए मूल समर्थन भी शामिल है।<ref name="Used for">{{cite web|url=https://www.w3.org/standards/xml/transformation#uses|title=What is XSLT Used For?|date=2018-02-07}}</ref>
एक्सएसएलटी 3.0 कार्यान्वयन जावा, .नेट, सी/सी++, पायथन, पीएचपी और नोडजेएस की सहायता करता है। एक एक्सएसएलटी 3.0 जावास्क्रिप्ट लाइब्रेरी को वेब ब्राउज़र में भी होस्ट किया जा सकता है। आधुनिक वेब ब्राउज़र में एक्सएसएलटी 1.0 के लिए मूल समर्थन भी सम्मलित होते है।<ref name="Used for">{{cite web|url=https://www.w3.org/standards/xml/transformation#uses|title=What is XSLT Used For?|date=2018-02-07}}</ref>


एक एक्सएसएलटी दस्तावेज़ परिवर्तन के लिए, मूल दस्तावेज़ नहीं बदला गया है; बल्कि, मौजूदा दस्तावेज़ की सामग्री के आधार पर एक नया दस्तावेज़ बनाया जाता है।<ref>{{cite web | url=http://www.w3.org/TR/xslt#section-Introduction | title=Introduction | publisher=W3C | work=XSL Transformations (XSLT) Version 1.0 W3C Recommendation | date=16 November 1999 | access-date=November 7, 2012}}</ref> विशिष्ट रूप से, इनपुट दस्तावेज़ एक्सएमएल फ़ाइलें होते हैं, लेकिन कोई भी चीज़ जिससे प्रोसेसर [[XQuery और XPath डेटा मॉडल|एक्सक्वेरी और XPath डेटा मॉडल]] का निर्माण कर सकता है, का उपयोग किया जा सकता है, जैसे [[संबंध का डेटाबेस]] टेबल या [[भौगोलिक सूचना प्रणाली]]।<ref name="Transformation" />
एक एक्सएसएलटी दस्तावेज़ के परिवर्तन के लिए, मूल दस्तावेज़ को नहीं बदला जाता है, जबकि, उपस्थित दस्तावेज़ की सामग्री के आधार पर एक नया दस्तावेज़ बनाया जाता है।<ref>{{cite web | url=http://www.w3.org/TR/xslt#section-Introduction | title=Introduction | publisher=W3C | work=XSL Transformations (XSLT) Version 1.0 W3C Recommendation | date=16 November 1999 | access-date=November 7, 2012}}</ref> विशिष्ट रूप से, इनपुट दस्तावेज़ एक्सएमएल फ़ाइलें होती है, लेकिन कोई भी चीज़ जिससे प्रोसेसर [[XQuery और XPath डेटा मॉडल|एक्सक्वेरी और एक्सपाथ डेटा मॉडल]] का निर्माण कर सकता है, उसका उपयोग किया जा सकता है, जैसे [[संबंध का डेटाबेस]] टेबल या [[भौगोलिक सूचना प्रणाली]]।<ref name="Transformation" />


जबकि एक्सएसएलटी को मूल रूप से एक्सएमएल परिवर्तन के लिए एक विशेष-उद्देश्य वाली भाषा के रूप में डिजाइन किया गया था, यह भाषा [[ट्यूरिंग पूर्णता|ट्यूरिंग-पूर्ण]] है, जो इसे सैद्धांतिक रूप से मनमाना संगणना करने में सक्षम बनाती है।<ref>[https://www.researchgate.net/publication/221568016_XSLT_Version_20_Is_Turing-Complete_A_Purely_Transformation_Based_Proof XSLT Version 2.0 Is Turing-Complete: A Purely Transformation Based Proof]</ref>
जबकि एक्सएसएलटी को मूल रूप से एक्सएमएल परिवर्तन के लिए एक विशेष-उद्देश्य वाली भाषा के रूप में डिजाइन किया गया था, यह भाषा [[ट्यूरिंग पूर्णता|ट्यूरिंग-पूर्ण]] होती है, जो इसे सैद्धांतिक रूप से संगणना करने में सक्षम बनाती है।<ref>[https://www.researchgate.net/publication/221568016_XSLT_Version_20_Is_Turing-Complete_A_Purely_Transformation_Based_Proof XSLT Version 2.0 Is Turing-Complete: A Purely Transformation Based Proof]</ref>
== इतिहास ==
== इतिहास ==
एक्सएसएलटी [[कार्यात्मक प्रोग्रामिंग|कार्यात्मक]] भाषाओं,<ref>{{cite web | url=http://www.ibm.com/developerworks/library/x-xslt/ | author=Michael Kay | title=What kind of language is XSLT? | website=[[IBM]] | access-date=July 8, 2016}}</ref> और [[SNOBOL]] और AWK जैसी पाठ-आधारित पैटर्न मिलान भाषाओं से प्रभावित है। इसका सबसे प्रत्यक्ष पूर्ववर्ती [[DSSSL]] है, जिसने [[SGML]] के लिए वही किया जो एक्सएसएलटी एक्सएमएल के लिए करता है।<ref>{{cite web | url=http://www.w3.org/TR/NOTE-XSL.html | title=A Proposal for XSL | publisher=W3C | access-date=November 7, 2012}}</ref>
एक्सएसएलटी [[कार्यात्मक प्रोग्रामिंग|कार्यात्मक]] भाषाओं,<ref>{{cite web | url=http://www.ibm.com/developerworks/library/x-xslt/ | author=Michael Kay | title=What kind of language is XSLT? | website=[[IBM]] | access-date=July 8, 2016}}</ref> और [[SNOBOL|स्नोबोल]] और एडब्ल्यूके जैसी टेक्स्ट-आधारित स्वरूप मिलान भाषाओं से प्रभावित होता है। इसका सबसे प्रत्यक्ष पूर्ववर्ती [[DSSSL|डीएसएसएसएल]] होता है, जो [[SGML|एसजीएमएल]] के लिए वही करता है जो एक्सएसएलटी एक्सएमएल के लिए करता है।<ref>{{cite web | url=http://www.w3.org/TR/NOTE-XSL.html | title=A Proposal for XSL | publisher=W3C | access-date=November 7, 2012}}</ref>
* एक्सएसएलटी 1.0: एक्सएसएलटी [[विश्वव्यापी वेब संकाय]] (W3C) के [[एक्स्टेंसिबल स्टाइलशीट लैंग्वेज]] (XSL) के 1998-1999 के विकास प्रयास का हिस्सा था, एक ऐसी परियोजना जिसने [[XSL-FO]] और [[XPath]] का भी उत्पादन किया। एक्सएसएलटी को विकसित करने वाली मानक समिति के कुछ सदस्य, जिनमें जेम्स क्लार्क (एक्सएमएल विशेषज्ञ), संपादक शामिल हैं, ने पहले DSSSL पर काम किया था। एक्सएसएलटी 1.0 को नवंबर 1999 में W3C अनुशंसा के रूप में प्रकाशित किया गया था।<ref name="timelinehistory">{{cite web |url=http://www.dblab.ntua.gr/~bikakis/XML%20and%20Semantic%20Web%20W3C%20Standards%20Timeline-History.pdf |title=XML and Semantic Web W3C Standards Timeline |access-date=2012-02-04 |archive-date=2013-04-24 |archive-url=https://web.archive.org/web/20130424125723/http://www.dblab.ntua.gr/~bikakis/XML%20and%20Semantic%20Web%20W3C%20Standards%20Timeline-History.pdf |url-status=dead }}</ref> इसकी उम्र के बावजूद, एक्सएसएलटी 1.0<ref>{{cite web|url=http://www.w3.org/TR/xslt |title=XSL Transformations (XSLT) |publisher=W3.org |date=1999-11-16 |access-date=2014-07-12}}</ref> अभी भी व्यापक रूप से उपयोग किया जाता है ({{as of|2018|lc=y}}), चूंकि बाद के संस्करण मूल रूप से [[वेब ब्राउज़र]] में या LAMP (सॉफ़्टवेयर बंडल) जैसे परिवेशों के लिए समर्थित नहीं हैं।
* एक्सएसएलटी 1.0: एक्सएसएलटी [[विश्वव्यापी वेब संकाय]] (डब्ल्यू3सी) के [[एक्स्टेंसिबल स्टाइलशीट लैंग्वेज|विस्तारणीय शैली पत्रक भाषा]] (एक्सएसएल) के 1998-1999 के विकास प्रयास का हिस्सा था, एक ऐसी परियोजना जिसने [[XSL-FO|एक्सएसएल-एफओ]] और [[XPath|एक्सपाथ]] का भी उत्पादन किया था। एक्सएसएलटी को विकसित करने वाले मानक समिति के कुछ सदस्य, जिनमें संपादक '''जेम्स क्लार्क''' भी सम्मलित है, उन्होंने पहले डीएसएसएसएल पर काम किया था। एक्सएसएलटी 1.0 को नवंबर 1999 में डब्ल्यू3सी अनुशंसा के रूप में प्रकाशित किया गया था।<ref name="timelinehistory">{{cite web |url=http://www.dblab.ntua.gr/~bikakis/XML%20and%20Semantic%20Web%20W3C%20Standards%20Timeline-History.pdf |title=XML and Semantic Web W3C Standards Timeline |access-date=2012-02-04 |archive-date=2013-04-24 |archive-url=https://web.archive.org/web/20130424125723/http://www.dblab.ntua.gr/~bikakis/XML%20and%20Semantic%20Web%20W3C%20Standards%20Timeline-History.pdf |url-status=dead }}</ref> इसकी उम्र के अतिरिक्त, एक्सएसएलटी 1.0<ref>{{cite web|url=http://www.w3.org/TR/xslt |title=XSL Transformations (XSLT) |publisher=W3.org |date=1999-11-16 |access-date=2014-07-12}}</ref> अभी भी व्यापक रूप से उपयोग किया जाता है (2018 तक), क्योंकि बाद के संस्करण [[वेब ब्राउज़र]] या एलएएमपी जैसे वातावरण के लिए मूल रूप से समर्थित नहीं थे।
 
*एक्सएसएलटी 2.0: 2001 में एक संस्करण 1.1 बनाने के असफल प्रयास के बाद,<ref>{{cite web|url=http://www.w3.org/TR/xslt11/ |title=XSL Transformations (XSLT) Version 1.1 |publisher=W3.org |date=2001-08-24 |access-date=2014-07-12}}</ref> एक्सएसएल कार्यकारी समूह ने एक्सपाथ 2.0 बनाने के लिए [[XQuery|एक्सक्वेरी]] कार्यकारी समूह के साथ सेना में सम्मलित हो गए थे,<ref>{{cite web|url=http://www.w3.org/TR/xpath20/ |title=XML Path Language (XPath) 2.0 (Second Edition) |publisher=W3.org |date=2010-12-14 |access-date=2014-07-12}}</ref> [[XML स्कीमा (W3C)|एक्सएमएल स्कीमा]] पर आधारित एक समृद्ध डेटा मॉडल और प्रकार प्रणाली पर निर्माण एक्सएसएलटी 2.0 होता है,<ref>{{cite web|url=http://www.w3.org/TR/xslt20/ |title=XSL Transformations (XSLT) Version 2.0 |publisher=W3.org |date=2007-01-23 |access-date=2014-07-12}}</ref> [[माइकल हॉवर्ड के]] संपादन के अनुसार विकसित किया गया था, जो जनवरी 2007 में सिफारिश की स्थिति तक पहुंच गया था।<ref>{{cite web|url=http://www.dblab.ntua.gr/~bikakis/XML%20and%20Semantic%20Web%20W3C%20Standards%20Timeline-History.pdf|title=XML and Semantic Web W3C Standards Timeline|date=2012-02-04|access-date=2012-02-04|archive-date=2013-04-24|archive-url=https://web.archive.org/web/20130424125723/http://www.dblab.ntua.gr/~bikakis/XML%20and%20Semantic%20Web%20W3C%20Standards%20Timeline-History.pdf|url-status=dead}}</ref> एक्सएसएलटी 2.0 में सबसे महत्वपूर्ण नवप्रवर्तनों में सम्मलित है:
* एक्सएसएलटी 2.0: 2001 में संस्करण 1.1 बनाने के विफल प्रयास के बाद,<ref>{{cite web|url=http://www.w3.org/TR/xslt11/ |title=XSL Transformations (XSLT) Version 1.1 |publisher=W3.org |date=2001-08-24 |access-date=2014-07-12}}</ref> XSL वर्किंग ग्रुप ने XPath 2.0 बनाने के लिए [[XQuery|एक्सक्वेरी]] वर्किंग ग्रुप के साथ हाथ मिलाया,<ref>{{cite web|url=http://www.w3.org/TR/xpath20/ |title=XML Path Language (XPath) 2.0 (Second Edition) |publisher=W3.org |date=2010-12-14 |access-date=2014-07-12}}</ref> [[XML स्कीमा (W3C)|एक्सएमएल स्कीमा (W3C)]] पर आधारित एक समृद्ध डेटा मॉडल और टाइप सिस्टम के साथ। इस पर निर्माण एक्सएसएलटी 2.0 है,<ref>{{cite web|url=http://www.w3.org/TR/xslt20/ |title=XSL Transformations (XSLT) Version 2.0 |publisher=W3.org |date=2007-01-23 |access-date=2014-07-12}}</ref> [[माइकल हॉवर्ड के]] के संपादन के तहत विकसित, जो जनवरी 2007 में सिफारिश की स्थिति में पहुंच गया।<ref>{{cite web|url=http://www.dblab.ntua.gr/~bikakis/XML%20and%20Semantic%20Web%20W3C%20Standards%20Timeline-History.pdf|title=XML and Semantic Web W3C Standards Timeline|date=2012-02-04|access-date=2012-02-04|archive-date=2013-04-24|archive-url=https://web.archive.org/web/20130424125723/http://www.dblab.ntua.gr/~bikakis/XML%20and%20Semantic%20Web%20W3C%20Standards%20Timeline-History.pdf|url-status=dead}}</ref> एक्सएसएलटी 2.0 में सबसे महत्वपूर्ण नवप्रवर्तनों में शामिल हैं:
** [[नियमित अभिव्यक्ति]] का उपयोग करते हुए स्ट्रिंग हेरफेर
** [[नियमित अभिव्यक्ति]] का उपयोग करते हुए स्ट्रिंग हेरफेर
** दिनांक, समय और अवधि में हेरफेर करने के लिए कार्य और ऑपरेटर
** दिनांक, समय और अवधि में हेरफेर करने के लिए कार्य और ऑपरेटर
** एकाधिक आउटपुट दस्तावेज़
** एकाधिक आउटपुट दस्तावेज़
** ग्रुपिंग (फ्लैट इनपुट अनुक्रमों से पदानुक्रमित संरचना बनाना)
** समूहन (फ्लैट इनपुट अनुक्रमों से पदानुक्रमित संरचना बनाना)
** एक समृद्ध प्रकार की प्रणाली और मजबूत प्रकार की जाँच
** एक समृद्ध प्रकार की प्रणाली और मजबूत प्रकार की जाँच


* एक्सएसएलटी 3.0: 8 जून 2017 को W3C अनुशंसा बन गया। मुख्य नई विशेषताएं हैं:<ref name=new-in-3>{{cite web|title=What's New in XSLT 3.0?
* एक्सएसएलटी 3.0: 8 जून 2017 को डब्ल्यू3सी अनुशंसा बन गया था। मुख्य नई विशेषताएं है:<ref name="new-in-3">{{cite web|title=What's New in XSLT 3.0?
|url=http://www.w3.org/TR/xslt-30/#whats-new-in-xslt3|publisher=w3|access-date=6 January 2014}}</ref> ** [[स्ट्रीमिंग एक्सएमएल]]: पिछले संस्करणों में पूरे इनपुट दस्तावेज़ को संसाधित करने से पहले मेमोरी में पढ़ना पड़ता था,<ref>
|url=http://www.w3.org/TR/xslt-30/#whats-new-in-xslt3|publisher=w3|access-date=6 January 2014}}</ref>  
{{cite web|last=Kay|first=Michael|title=A Streaming XSLT Processor|url=http://www.balisage.net/Proceedings/vol5/html/Kay01/BalisageVol5-Kay01.html|publisher=Balisage: The Markup Conference 2010 Proceedings|access-date=15 February 2012}}</ref> और प्रोसेसिंग समाप्त होने तक आउटपुट नहीं लिखा जा सकता था। एक्सएसएलटी 3.0 स्ट्रीमिंग एक्सएमएल की अनुमति देता है जो स्मृति में फ़िट होने के लिए बहुत बड़े दस्तावेज़ों को प्रोसेस करने के लिए उपयोगी है या जब एक्सएमएल पाइपलाइनों में परिवर्तन जंजीर हैं।
*[[स्ट्रीमिंग एक्सएमएल|स्ट्रीमिंग]] परिवर्तन: पिछले संस्करणों में पूरे इनपुट दस्तावेज़ को संसाधित करने से पहले मेमोरी में पढ़ना पड़ता था,<ref>
** संकुल, बड़ी स्टाइलशीट की प्रतिरूपकता में सुधार करने के लिए।
{{cite web|last=Kay|first=Michael|title=A Streaming XSLT Processor|url=http://www.balisage.net/Proceedings/vol5/html/Kay01/BalisageVol5-Kay01.html|publisher=Balisage: The Markup Conference 2010 Proceedings|access-date=15 February 2012}}</ref> और प्रसंस्करण समाप्त होने तक आउटपुट नहीं लिखा जा सकता था। एक्सएसएलटी 3.0 एक्सएमएल स्ट्रीमिंग की अनुमति देता है जो स्मृति में फ़िट होने के लिए बहुत बड़े दस्तावेज़ों को प्रोसेस करने के लिए उपयोगी होता है या जब एक्सएमएल पाइपलाइनों में परिवर्तन जारी होता है।
** उदाहरण के लिए, xsl:try निर्देश के साथ गतिशील त्रुटियों से निपटने में सुधार।
** संकुल, बड़ी शैली पत्रक की प्रतिरूपकता में सुधार करने के लिए होता है।
** नक्शे और सरणियों के लिए समर्थन, एक्सएसएलटी को JSON के साथ-साथ एक्सएमएल को संभालने में सक्षम बनाता है।
** उदाहरण के लिए, एक्सएसएल:try निर्देश के साथ गतिशील त्रुटियों का बेहतर प्रबंधन करने के लिए होता है।
** कार्य अब अन्य (उच्च-क्रम) कार्यों के लिए तर्क हो सकते हैं।
** नक्शे और सरणियों के लिए समर्थन, एक्सएसएलटी को जेएसओएन के साथ-साथ एक्सएमएल को संभालने में सक्षम बनाता है।
** कार्य अब अन्य (उच्च-क्रम) कार्यों के लिए तर्क हो सकते है।


== डिजाइन और प्रसंस्करण मॉडल ==
== डिजाइन और प्रसंस्करण मॉडल ==
[[Image:XSLT en.svg|right|thumb|एक्स्टेंसिबल स्टाइलशीट लैंग्वेज ट्रांसफॉर्मेशन के मूल तत्वों और प्रक्रिया प्रवाह का आरेख।]]एक्सएसएलटी प्रोसेसर एक या अधिक एक्सएमएल स्रोत दस्तावेज़, प्लस एक या अधिक एक्सएसएलटी स्टाइलशीट लेता है, और उन्हें एक या एकाधिक आउटपुट दस्तावेज़ बनाने के लिए संसाधित करता है।<ref>{{Citation |last1=Flatt |first1=Amelie |title=Phase III: Generating Artifacts from the Model |date=2022 |url=https://link.springer.com/10.1007/978-3-031-14132-4_5 |work=Model-Driven Development of Akoma Ntoso Application Profiles |pages=31–37 |place=Cham |publisher=Springer International Publishing |language=en |doi=10.1007/978-3-031-14132-4_5 |isbn=978-3-031-14131-7 |access-date=2023-01-07 |last2=Langner |first2=Arne |last3=Leps |first3=Olof}}</ref><ref>{{Cite web |title=XSL Transformations (XSLT) Version 2.0 (Second Edition) |url=https://www.w3.org/TR/xslt20/#creating-result-trees |access-date=2023-02-07 |website=www.w3.org |quote=Example: Multiple Result Documents}}</ref> [[सी (प्रोग्रामिंग भाषा)]] जैसी व्यापक रूप से कार्यान्वित [[अनिवार्य प्रोग्रामिंग]] भाषाओं के विपरीत, एक्सएसएलटी [[घोषणात्मक प्रोग्रामिंग]] है।<ref>{{cite web |title=Discover the Wonders of XSLT: XSLT Quirks |url=http://www.developer.com/xml/article.php/3357231#Coding%20styles |quote=XSLT is a very specialized language with a distinct declarative flavor. |access-date=2011-02-11 |archive-date=2011-07-09 |archive-url=https://web.archive.org/web/20110709015528/http://www.developer.com/xml/article.php/3357231#Coding%20styles |url-status=dead }}</ref> मूल प्रसंस्करण प्रतिमान पैटर्न मिलान है।<ref name=IBM>{{cite web|last=Kay|first=Michael|title=What kind of language is XSLT?|url=http://www.ibm.com/developerworks/library/x-xslt/|publisher=IBM|access-date=13 November 2013}}</ref> स्टेटफुल वातावरण में प्रदर्शन करने के लिए क्रियाओं के एक अनिवार्य अनुक्रम को सूचीबद्ध करने के बजाय, टेम्पलेट नियम केवल यह परिभाषित करते हैं कि किसी विशेष XPath-जैसे पैटर्न से मेल खाने वाले नोड को कैसे संभालना है, यदि प्रोसेसर को एक का सामना करना चाहिए, और टेम्पलेट की सामग्री प्रभावी रूप से कार्यात्मक होती है प्रोग्रामिंग [[अभिव्यक्ति (प्रोग्रामिंग)]] जो सीधे उनके मूल्यांकित रूप का प्रतिनिधित्व करते हैं: परिणाम वृक्ष, जो प्रोसेसर के आउटपुट का आधार है।
[[Image:XSLT en.svg|right|thumb|विस्तारणीय शैली पत्रक भाषा परिवर्तन के मूल तत्वों और प्रक्रिया प्रवाह का आरेख।]]एक्सएसएलटी प्रोसेसर एक या अधिक एक्सएमएल स्रोत दस्तावेज़ों के साथ-साथ एक या अधिक एक्सएसएलटी शैली पत्रक लेता है, और उन्हें एक या एकाधिक आउटपुट दस्तावेज़ बनाने के लिए संसाधित करता है।<ref>{{Citation |last1=Flatt |first1=Amelie |title=Phase III: Generating Artifacts from the Model |date=2022 |url=https://link.springer.com/10.1007/978-3-031-14132-4_5 |work=Model-Driven Development of Akoma Ntoso Application Profiles |pages=31–37 |place=Cham |publisher=Springer International Publishing |language=en |doi=10.1007/978-3-031-14132-4_5 |isbn=978-3-031-14131-7 |access-date=2023-01-07 |last2=Langner |first2=Arne |last3=Leps |first3=Olof}}</ref><ref>{{Cite web |title=XSL Transformations (XSLT) Version 2.0 (Second Edition) |url=https://www.w3.org/TR/xslt20/#creating-result-trees |access-date=2023-02-07 |website=www.w3.org |quote=Example: Multiple Result Documents}}</ref> [[सी (प्रोग्रामिंग भाषा)]], एक्सएसएलटी जैसे व्यापक रूप से लागू [[अनिवार्य प्रोग्रामिंग]] भाषाओं के विपरीत [[घोषणात्मक प्रोग्रामिंग|घोषणात्मक]] होता है।<ref>{{cite web |title=Discover the Wonders of XSLT: XSLT Quirks |url=http://www.developer.com/xml/article.php/3357231#Coding%20styles |quote=XSLT is a very specialized language with a distinct declarative flavor. |access-date=2011-02-11 |archive-date=2011-07-09 |archive-url=https://web.archive.org/web/20110709015528/http://www.developer.com/xml/article.php/3357231#Coding%20styles |url-status=dead }}</ref> मूल प्रसंस्करण प्रतिमान स्वरूप मिलान होता है।<ref name="IBM">{{cite web|last=Kay|first=Michael|title=What kind of language is XSLT?|url=http://www.ibm.com/developerworks/library/x-xslt/|publisher=IBM|access-date=13 November 2013}}</ref> स्टेटफुल वातावरण में प्रदर्शन करने के लिए क्रियाओं के एक अनिवार्य अनुक्रम को सूचीबद्ध करने के अतिरिक्त, टेम्पलेट नियम केवल यह परिभाषित करते है कि किसी विशेष एक्सपाथ-जैसे स्वरूप से मेल खाने वाले नोड को कैसे संभालना होता है, यदि प्रोसेसर को एक का सामना करना होता है, और टेम्पलेट की सामग्री प्रभावी रूप से कार्यात्मक होती है तो [[अभिव्यक्ति (प्रोग्रामिंग)|अभिव्यक्तियाँ]] होती है जो सीधे उनके मूल्यांकित रूप का प्रतिनिधित्व करती है: परिणाम ट्री, जो प्रोसेसर के आउटपुट का आधार होता है।


एक विशिष्ट प्रोसेसर निम्नानुसार व्यवहार करता है। सबसे पहले, यह मानते हुए कि स्टाइलशीट पहले ही पढ़ी और तैयार की जा चुकी है, प्रोसेसर इनपुट एक्सएमएल दस्तावेज़ से एक स्रोत ट्री डेटा संरचना बनाता है। इसके बाद यह स्रोत ट्री के रूट नोड को संसाधित करता है, स्टाइलशीट में उस नोड के लिए सबसे अच्छा मेल खाने वाला टेम्पलेट ढूंढता है, और टेम्पलेट की सामग्री का मूल्यांकन करता है। प्रत्येक टेम्प्लेट में निर्देश आम तौर पर प्रोसेसर को या तो परिणाम ट्री में नोड्स बनाने के लिए निर्देशित करते हैं, या रूट नोड के समान ही स्रोत ट्री में अधिक नोड्स को प्रोसेस करने के लिए निर्देशित करते हैं। अंत में परिणाम ट्री को एक्सएमएल या एचटीएमएल टेक्स्ट के रूप में क्रमबद्ध किया जाता है।
एक विशिष्ट प्रोसेसर निम्नानुसार व्यवहार करता है। सबसे पहले, यह मानते हुए कि शैली पत्रक पहले ही पढ़ी और तैयार की जा चुकी है, प्रोसेसर इनपुट एक्सएमएल दस्तावेज़ से एक स्रोत ट्री बनाता है। इसके बाद यह स्रोत ट्री के रूट नोड को संसाधित करता है, शैली पत्रक में उस नोड के लिए सबसे अच्छा मेल खाने वाला टेम्पलेट ढूंढता है, और टेम्पलेट की सामग्री का मूल्यांकन करता है। प्रत्येक टेम्प्लेट में निर्देश सामान्यतः प्रोसेसर को या तो परिणाम ट्री में नोड्स बनाने के लिए निर्देशित करता है, या रूट नोड के समान ही स्रोत ट्री में अधिक नोड्स को प्रोसेस करने के लिए निर्देशित करता है। अंत में परिणाम ट्री को एक्सएमएल या एचटीएमएल टेक्स्ट के रूप में क्रमबद्ध किया जाता है।


==एक्सपाथ==
==एक्सपाथ==
{{details|
{{details|
एक्सपथ}}
एक्सपाथ}}


एक्सएसएलटी स्रोत दस्तावेज़ ट्री के सबसेट की पहचान करने और गणना करने के लिए XPath का उपयोग करता है। XPath उपनेमका की एक श्रृंखला भी प्रदान करता है, जिसे एक्सएसएलटी स्वयं आगे बढ़ाता है।
एक्सएसएलटी स्रोत दस्तावेज़ ट्री के सबसेट की पहचान करने और गणना करने के लिए एक्सपाथ का उपयोग करता है। एक्सपाथ कई प्रकार के फ़ंक्शन भी प्रदान करता है, जिसे एक्सएसएलटी स्वयं और बढ़ाता है।


एक्सएसएलटी 1.0 XPath 1.0 का उपयोग करता है, जबकि एक्सएसएलटी 2.0 XPath 2.0 का उपयोग करता है। एक्सएसएलटी 3.0 या तो XPath 3.0 या 3.1 के साथ काम करेगा। 1.0 और 2.0 के मामले में, एक्सएसएलटी और XPath विनिर्देशों को एक ही तिथि पर प्रकाशित किया गया था। 3.0 के साथ, हालांकि, वे अब सिंक्रनाइज़ नहीं थे; XPath 3.0 अप्रैल 2014 में एक सिफारिश बन गया, उसके बाद फरवरी 2017 में XPath 3.1; एक्सएसएलटी 3.0 जून 2017 में आया।
एक्सएसएलटी 1.0 एक्सपाथ 1.0 का उपयोग करता है, जबकि एक्सएसएलटी 2.0 एक्सपाथ 2.0 का उपयोग करता है। 1.0 और 2.0 के स्थिति में, एक्सएसएलटी और एक्सपाथ विनिर्देशों को एक ही तिथि पर प्रकाशित किया गया था। 3.0 के साथ, चूंकि, वे अब साथ नहीं थे, एक्सपाथ 3.0 अप्रैल 2014 में एक सिफारिश बन गया था, उसके बाद फरवरी 2017 में एक्सपाथ 3.1, एक्सएसएलटी 3.0 जून 2017 में आया था।


==एक्सक्वेरी तुलना ==
==एक्सक्वेरी तुलना ==
Line 72: Line 72:
एक्स क्वेरी एक्स क्वेरी और एक्सएसएलटी की तुलना}}
एक्स क्वेरी एक्स क्वेरी और एक्सएसएलटी की तुलना}}


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


एक्सएसएलटी 2.0 और एक्सक्वेरी 1.0 मानकों को [[W3C]] के भीतर अलग-अलग कार्य समूहों द्वारा विकसित किया गया था, जहां उपयुक्त हो, एक सामान्य दृष्टिकोण सुनिश्चित करने के लिए मिलकर काम करना। वे समान डेटा मॉडल, टाइप सिस्टम और फ़ंक्शन लाइब्रेरी साझा करते हैं, और दोनों में XPath 2.0 को एक उपभाषा के रूप में शामिल किया गया है।
एक्सएसएलटी 2.0 और एक्सक्वेरी 1.0 मानकों को [[W3C|डब्ल्यू3सी]] के भीतर अलग-अलग कार्य समूहों द्वारा विकसित किया गया था, जहां उपयुक्त में, एक सामान्य दृष्टिकोण सुनिश्चित करने के लिए मिलकर काम करते थे। वे समान डेटा मॉडल, टाइप प्रणाली और फ़ंक्शन लाइब्रेरी साझा करते थे, और दोनों में एक्सपाथ 2.0 को एक उपभाषा के रूप में सम्मलित किये गए थे।


हालाँकि, दो भाषाएँ विभिन्न परंपराओं में निहित हैं और विभिन्न समुदायों की आवश्यकताओं को पूरा करती हैं। एक्सएसएलटी को मुख्य रूप से एक स्टाइलशीट भाषा के रूप में माना गया था जिसका प्राथमिक लक्ष्य मानव पाठक के लिए स्क्रीन पर, वेब पर (एक [[वेब टेम्पलेट]] के रूप में), या कागज पर एक्सएमएल को प्रस्तुत करना था। एक्सक्वेरी को मुख्य रूप से [[SQL]] की परंपरा में [[डेटाबेस क्वेरी भाषा]] के रूप में माना गया था।
चूँकि, दो भाषाएँ विभिन्न परंपराओं में निहित है और विभिन्न समुदायों की आवश्यकताओं को पूरा करती है। एक्सएसएलटी को मुख्य रूप से एक शैली पत्रक भाषा के रूप में माना गया था जिसका प्राथमिक लक्ष्य वेब पर (एक [[वेब टेम्पलेट]] भाषा के रूप में), या कागज पर मानव टेक्स्टक के लिए एक्सएमएल को प्रस्तुत करना था। एक्सक्वेरी को मुख्य रूप से [[SQL|एसक्यूएल]] की परंपरा में [[डेटाबेस क्वेरी भाषा]] के रूप में माना गया था।


क्योंकि दो भाषाएँ विभिन्न समुदायों में उत्पन्न होती हैं, एक्सएसएलटी इसकी हैंडलिंग में अधिक मजबूत है
क्योंकि दो भाषाओं की उत्पत्ति विभिन्न समुदायों में हुई थी, एक्सएसएलटी अधिक लचीली संरचना के साथ वर्णनात्मक दस्तावेज़ों को संभालने में अधिक मजबूत था, जबकि एक्सक्वेरी अपने डेटा प्रबंधन में अधिक मजबूत था, उदाहरण के लिए संबंधपरक जुड़ाव करते समय।<ref>{{Cite web |title=Saxonica: XSLT and XQuery |url=https://www.saxonica.com/technology/xslt-and-xquery.xml |access-date=2022-06-29 |website=www.saxonica.com}}</ref>
अधिक लचीली संरचना के साथ वर्णनात्मक दस्तावेज़ों की, जबकि एक्सक्वेरी अपने डेटा हैंडलिंग में अधिक मजबूत है, उदाहरण के लिए जब रिलेशनल जॉइन करते हैं।<ref>{{Cite web |title=Saxonica: XSLT and XQuery |url=https://www.saxonica.com/technology/xslt-and-xquery.xml |access-date=2022-06-29 |website=www.saxonica.com}}</ref>


== मीडिया प्रकार ==
<code>&lt;आउटपुट&gt;</code> तत्व वैकल्पिक रूप से विशेषता ले सकता है <code>मीडिया-प्रकार</code>, जो किसी को परिणामी आउटपुट के लिए [[इंटरनेट मीडिया प्रकार]] (या एमआईएमई प्रकार) सेट करने की अनुमति देता है, उदाहरण के लिए: <code><एक्सएसएल:आउटपुट आउटपुट="एक्सएमएल" मीडिया-प्रकार="एप्लीकेशन/एक्सएमएल"/></code> एक्सएसएलटी 1.0 अनुशंसा अधिक सामान्य विशेषता प्रकारों की अनुशंसा करती है <code>टेक्स्ट/एक्सएमएल</code> और <code>एप्लीकेशन/एक्सएमएल</code> चूंकि लंबे समय से एक्सएसएलटी के लिए कोई पंजीकृत मीडिया प्रकार नहीं था। इस समय के दौरान <code>टेक्स्ट/एक्सएसएल</code> वास्तविक मानक बन गया था। एक्सएसएलटी 1.0 में यह निर्दिष्ट नहीं किया गया था कि कैसे <code>मीडिया-प्रकार</code> मूल्यों का प्रयोग करना होता है।


== मीडिया प्रकार == <code>&lt;output&gt;</code> ई> तत्व वैकल्पिक रूप से विशेषता ले सकता है <code>media-type</code>, जो किसी को परिणामी आउटपुट के लिए [[इंटरनेट मीडिया प्रकार]] (या MIME प्रकार) सेट करने की अनुमति देता है, उदाहरण के लिए: <code><xsl:output output="एक्सएमएल" media-type="application/एक्सएमएल"/></code>. एक्सएसएलटी 1.0 अनुशंसा अधिक सामान्य विशेषता प्रकारों की अनुशंसा करती है <code>text/एक्सएमएल</code> और <code>application/एक्सएमएल</code> चूंकि लंबे समय से एक्सएसएलटी के लिए कोई पंजीकृत मीडिया प्रकार नहीं था। इस समय के दौरान <code>text/xsl</code> वास्तविक मानक बन गया। एक्सएसएलटी 1.0 में यह निर्दिष्ट नहीं किया गया था कि कैसे <code>media-type</code> मूल्यों का प्रयोग करना चाहिए।
एक्सएसएलटी 2.0 की रिलीज़ के साथ, डब्ल्यू3सी ने एमआईएमई मीडिया प्रकार के पंजीकरण की सिफारिश की थी <code>एप्लीकेशन/एक्सएसएलटी+एक्सएमएल</code><ref>{{cite web|title=XSL Transformations (XSLT) Version 2.0|url=http://www.w3.org/TR/2007/REC-xslt20-20070123/#media-type-registration|publisher=W3C|access-date=19 October 2012}}</ref> और इसे बाद में [[इंटरनेट निरुपित नंबर प्राधिकरण]] के साथ पंजीकृत किया गया था।<ref>{{cite web|title=Application Media Types|url=https://www.iana.org/assignments/media-types/application/index.html|publisher=IANA|access-date=19 October 2012}}</ref>


एक्सएसएलटी 2.0 की रिलीज़ के साथ, W3C ने MIME मीडिया प्रकार के पंजीकरण की सिफारिश की <code>application/एक्सएसएलटी+एक्सएमएल</code><ref>{{cite web|title=XSL Transformations (XSLT) Version 2.0|url=http://www.w3.org/TR/2007/REC-xslt20-20070123/#media-type-registration|publisher=W3C|access-date=19 October 2012}}</ref> और इसे बाद में [[इंटरनेट निरुपित नंबर प्राधिकरण]] के साथ पंजीकृत किया गया।<ref>{{cite web|title=Application Media Types|url=https://www.iana.org/assignments/media-types/application/index.html|publisher=IANA|access-date=19 October 2012}}</ref>
एक्सएसएलटी के प्री-1.0 कार्यरत ड्राफ्ट का उपयोग किया गया था <code>टेक्स्ट/एक्सएसएल</code> उनके एम्बेडिंग उदाहरणों में, इस प्रकार को लागू किया गया था और माइक्रोसॉफ्ट द्वारा इंटरनेट एक्सप्लोरर में प्रचारित किया गया था<ref>{{cite web|title=XSLT Requirements for Viewing XML in a Browser|url=http://msdn.microsoft.com/en-us/library/windows/desktop/ms757857(v=vs.85).aspx|publisher=Microsoft|access-date=19 October 2012}}</ref> और एमएसएक्सएमएल को भी व्यापक रूप से मान्यता प्राप्त है। <code>एक्सएमएल-स्टाइलशीट</code> इसलिए, इस प्रसंस्करण निर्देश का उपयोग करके ब्राउज़र में परिवर्तन को नियंत्रित करने के इच्छुक उपयोगकर्ता इस अपंजीकृत मीडिया प्रकार का उपयोग करने के लिए बाध्य होता है।<ref>{{cite book | last=Kay | first=Michael | title=XSLT 2.0 and XPath 2.0 Programmer's Reference | url=https://archive.org/details/xsltxpathprogram00kaym_646 | url-access=limited | year=2008 | publisher=Wiley | isbn=978-0-470-19274-0 | page=[https://archive.org/details/xsltxpathprogram00kaym_646/page/n151 100]}}</ref>
एक्सएसएलटी के प्री-1.0 वर्किंग ड्राफ्ट का उपयोग किया गया <code>text/xsl</code> उनके एम्बेडिंग उदाहरणों में, और इस प्रकार को लागू किया गया था और Microsoft द्वारा Internet Explorer में प्रचारित किया जाना जारी है<ref>{{cite web|title=XSLT Requirements for Viewing XML in a Browser|url=http://msdn.microsoft.com/en-us/library/windows/desktop/ms757857(v=vs.85).aspx|publisher=Microsoft|access-date=19 October 2012}}</ref> और एमएसएक्सएमएल। में भी व्यापक रूप से मान्यता प्राप्त है <code>एक्सएमएल-stylesheet</code> अन्य ब्राउज़रों द्वारा प्रसंस्करण निर्देश। व्यवहार में, इसलिए, इस प्रसंस्करण निर्देश का उपयोग करके ब्राउज़र में परिवर्तन को नियंत्रित करने के इच्छुक उपयोगकर्ता इस अपंजीकृत मीडिया प्रकार का उपयोग करने के लिए बाध्य हैं।<ref>{{cite book | last=Kay | first=Michael | title=XSLT 2.0 and XPath 2.0 Programmer's Reference | url=https://archive.org/details/xsltxpathprogram00kaym_646 | url-access=limited | year=2008 | publisher=Wiley | isbn=978-0-470-19274-0 | page=[https://archive.org/details/xsltxpathprogram00kaym_646/page/n151 100]}}</ref>


== उदाहरण ==
== उदाहरण ==
ये उदाहरण निम्नलिखित इनकमिंग एक्सएमएल दस्तावेज़<nowiki><syntaxhighlight lang= एक्सएमएल > का उपयोग करते हैं</nowiki>
ये उदाहरण निम्न आवक एक्सएमएल दस्तावेज़ का उपयोग करते है
<?एक्सएमएल संस्करण = 1.0 ?>
<syntaxhighlight lang="xml">
<व्यक्ति>
<?xml version="1.0" ?>
   <व्यक्ति उपयोगकर्ता नाम = JS1>
<persons>
     <नाम>जॉन</name>
   <person username="JS1">
     <परिवार-नाम>स्मिथ</परिवार-नाम>
     <name>John</name>
   </व्यक्ति>
     <family-name>Smith</family-name>
   <व्यक्ति उपयोगकर्ता नाम = MI1>
   </person>
     <नाम>मोरका</name>
   <person username="MI1">
     <परिवार-नाम>इस्मिन्शियस</परिवार-नाम>
     <name>Morka</name>
   </व्यक्ति>
     <family-name>Ismincius</family-name>
</व्यक्ति>
   </person>
</वाक्यविन्यास हाइलाइट>
</persons>
 
</syntaxhighlight>
=== उदाहरण 1 (एक्सएमएल को एक्सएमएल में बदलना) ===
=== उदाहरण 1 (एक्सएमएल को एक्सएमएल में बदलना) ===
यह एक्सएसएलटी स्टाइलशीट एक्सएमएल दस्तावेज़ को रूपांतरित करने के लिए टेम्प्लेट प्रदान करता है: <nowiki><syntaxhighlight lang= एक्सएमएल ></nowiki>
यह एक्सएसएलटी शैली पत्रक एक्सएमएल दस्तावेज़ को रूपांतरित करने के लिए टेम्पलेट प्रदान करती है:
<?एक्सएमएल संस्करण = 1.0 एन्कोडिंग = UTF-8 ?>
<syntaxhighlight lang="xml">
<xsl:stylesheet एक्सएमएलns:xsl= http://www.w3.org/1999/XSL/Transform version= 1.0 >
<?xml version="1.0" encoding="UTF-8"?>
   <xsl: आउटपुट मेथड = एक्सएमएल इंडेंट = हाँ />
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
   <xsl:output method="xml" indent="yes"/>


   <xsl: साँचा मिलान = /व्यक्तियों >
   <xsl:template match="/persons">
     <जड़>
     <root>
       <xsl:apply-templates select= person />
       <xsl:apply-templates select="person"/>
     </ जड़>
     </root>
   </xsl: साँचा>
   </xsl:template>


   <xsl: टेम्पलेट मैच = व्यक्ति>
   <xsl:template match="person">
     <नाम उपयोगकर्ता नाम = {@उपयोगकर्ता नाम}>
     <name username="{@username}">
       <xsl: चयन का मूल्य = नाम />
       <xsl:value-of select="name" />
     </ नाम>
     </name>
   </xsl: साँचा>
   </xsl:template>


</xsl: स्टाइलशीट>
</xsl:stylesheet>
</वाक्यविन्यास हाइलाइट>
</syntaxhighlight>


इसका मूल्यांकन एक नए एक्सएमएल दस्तावेज़ में होता है, जिसमें एक और संरचना होती है:
इसका मूल्यांकन एक नए एक्सएमएल दस्तावेज़ में होता है, जिसमें एक और संरचना होती है:
<syntaxhighlight lang="xml">
<?xml version="1.0" encoding="UTF-8"?>
<root>
  <name username="JS1">John</name>
  <name username="MI1">Morka</name>
</root>
</syntaxhighlight>


<वाक्यविन्यास प्रकाश लैंग = एक्सएमएल>
=== उदाहरण 2 (एक्सएमएल को [[एक्सएचटीएमएल]] में बदलना) ===
<?एक्सएमएल संस्करण = 1.0 एन्कोडिंग = UTF-8 ?>
निम्न उदाहरण एक्सएसएलटी फ़ाइल संसाधित करता है
<जड़>
  <नाम उपयोगकर्ता नाम = JS1> जॉन </ नाम>
  <नाम उपयोगकर्ता नाम = MI1> मोरका </ नाम>
</ जड़>
</वाक्यविन्यास हाइलाइट>


=== उदाहरण 2 (एक्सएमएल को [[एक्सएचटीएमएल]] में बदलना) ===
<syntaxhighlight lang="xml">
निम्न उदाहरण एक्सएसएलटी फ़ाइल संसाधित कर रहा है
<?xml version="1.0" encoding="UTF-8"?>
<वाक्यविन्यास प्रकाश लैंग = एक्सएमएल>
<xsl:stylesheet
<?एक्सएमएल संस्करण = 1.0 एन्कोडिंग = UTF-8 ?>
   version="1.0"
<xsl: स्टाइलशीट
   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
   संस्करण = 1.0
   xmlns="http://www.w3.org/1999/xhtml">
   एक्सएमएलns:xsl= http://www.w3.org/1999/XSL/Transform
   एक्सएमएलns= [http://www.w3.org/1999/xhtml http://www.w3.org/1999/xएचटीएमएल] >


   <xsl: आउटपुट विधि = एक्सएमएल इंडेंट = हाँ एन्कोडिंग = UTF-8 />
   <xsl:output method="xml" indent="yes" encoding="UTF-8"/>


   <xsl: साँचा मिलान = /व्यक्तियों >
   <xsl:template match="/persons">
     <एचटीएमएल>
     <html>
       <head> <title>एक्सएमएल का परीक्षण उदाहरण</title> </head>
       <head> <title>Testing XML Example</title> </head>
       <शरीर>
       <body>
         <h1>व्यक्ति</h1>
         <h1>Persons</h1>
         <उल>
         <ul>
           <xsl:apply-templates select= person >
           <xsl:apply-templates select="person">
             <xsl: सॉर्ट सेलेक्ट = फैमिली-नेम />
             <xsl:sort select="family-name" />
           </xsl:apply-templates>
           </xsl:apply-templates>
          
         </ul>
       </शरीर>
       </body>
     </एचटीएमएल>
     </html>
   </xsl: साँचा>
   </xsl:template>


   <xsl: टेम्पलेट मैच = व्यक्ति>
   <xsl:template match="person">
     <ली>
     <li>
       <xsl: value-of select= family-name /><xsl:text>, </xsl:text><xsl:value-of select= name />
       <xsl:value-of select="family-name"/><xsl:text>, </xsl:text><xsl:value-of select="name"/>
     </ली>
     </li>
   </xsl: साँचा>
   </xsl:template>
 
</xsl:stylesheet>
</syntaxhighlight>
 
उपरोक्त दिखाए गए एक्सएमएल इनपुट फ़ाइल के साथ निम्नलिखित एक्सएचटीएमएल में परिणाम (व्हाट्सएप (कंप्यूटर विज्ञान) को स्पष्टता के लिए यहां समायोजित किया गया है):
<syntaxhighlight lang="xml">
<?xml version="1.0" encoding="UTF-8"?>
<html xmlns="http://www.w3.org/1999/xhtml">
  <head> <title>Testing XML Example</title> </head>
  <body>
    <h1>Persons</h1>
      <ul>
        <li>Ismincius, Morka</li>
        <li>Smith, John</li>
      </ul>
  </body>
</html>
</syntaxhighlight>


</xsl: स्टाइलशीट>
</वाक्यविन्यास हाइलाइट>
उपरोक्त दिखाए गए एक्सएमएल इनपुट फ़ाइल के साथ निम्नलिखित एक्सएचटीएमएल में परिणाम (व्हाट्सएप (कंप्यूटर साइंस) को स्पष्टता के लिए यहां समायोजित किया गया है):
<वाक्यविन्यास प्रकाश लैंग = एक्सएमएल>
<?एक्सएमएल संस्करण = 1.0 एन्कोडिंग = UTF-8 ?>
<एचटीएमएल एक्सएमएलns= <nowiki>http://www.w3.org/1999/xएचटीएमएल</nowiki> >
  <head> <title>एक्सएमएल का परीक्षण उदाहरण</title> </head>
  <शरीर>
    <h1>व्यक्ति</h1>
      <उल>
        <li>इस्मिन्शियस, मोरका</li>
        <li>स्मिथ, जॉन</li>
     
  </शरीर>
</एचटीएमएल>
</वाक्यविन्यास हाइलाइट>
वेब ब्राउजर में प्रस्तुत किए जाने पर यह एक्सएचटीएमएल नीचे आउटपुट उत्पन्न करता है।
वेब ब्राउजर में प्रस्तुत किए जाने पर यह एक्सएचटीएमएल नीचे आउटपुट उत्पन्न करता है।
[[Image:xslt ex2.png|thumb|center|एक एक्सएमएल इनपुट फ़ाइल और एक एक्सएसएलटी परिवर्तन से उत्पन्न एक्सएचटीएमएल प्रस्तुत किया गया।]]एक वेब ब्राउज़र के लिए प्रदर्शन पर एक एक्सएमएल दस्तावेज़ में XSL परिवर्तन लागू करने में सक्षम होने के लिए, एक एक्सएमएल स्टाइलशीट प्रसंस्करण निर्देश एक्सएमएल में सम्मिलित किया जा सकता है। इसलिए, उदाहरण के लिए, यदि उपरोक्त उदाहरण 2 में स्टाइलशीट example2.xsl के रूप में उपलब्ध थी, तो निम्नलिखित निर्देश मूल इनकमिंग एक्सएमएल में जोड़े जा सकते हैं:<ref name=w3cxslt>{{cite web | url = http://www.w3.org/TR/xslt#section-Embedding-Stylesheets | title = XSL Transformations (XSLT) Version 1.0: W3C Recommendation&nbsp;– Embedding Stylesheets | date = 16 November 1999 | publisher = W3C | access-date = 20 September 2016}}</ref>
[[Image:xslt ex2.png|thumb|center|एक एक्सएमएल इनपुट फ़ाइल और एक एक्सएसएलटी परिवर्तन से उत्पन्न एक्सएचटीएमएल प्रस्तुत किया गया।]]एक वेब ब्राउज़र के लिए प्रदर्शन पर एक एक्सएमएल दस्तावेज़ में एक्सएसएल परिवर्तन लागू करने में सक्षम होने के लिए, एक एक्सएमएल शैली पत्रक प्रसंस्करण निर्देश एक्सएमएल में सम्मिलित किया जाता है। इसलिए, उदाहरण के लिए, यदि उपरोक्त उदाहरण2 में शैली पत्रक "उदाहरण2.एक्सएसएल" के रूप में उपलब्ध है, तो निम्नलिखित निर्देश मूल इनकमिंग एक्सएमएल में जोड़ा जा सकता है:<ref name=w3cxslt>{{cite web | url = http://www.w3.org/TR/xslt#section-Embedding-Stylesheets | title = XSL Transformations (XSLT) Version 1.0: W3C Recommendation&nbsp;– Embedding Stylesheets | date = 16 November 1999 | publisher = W3C | access-date = 20 September 2016}}</ref>
<वाक्यविन्यास प्रकाश लैंग = एक्सएमएल>
<?एक्सएमएल-stylesheet href= example2.xsl type= text/xsl ?>
</वाक्यविन्यास हाइलाइट>


इस उदाहरण में, <code>text/xsl</code> W3C विनिर्देशों के अनुसार तकनीकी रूप से गलत है<ref name=w3cxslt />(जो कहते हैं कि प्रकार होना चाहिए <code>application/एक्सएसएलटी+एक्सएमएल</code>), लेकिन यह एकमात्र मीडिया प्रकार है जो 2009 तक सभी ब्राउज़रों में व्यापक रूप से समर्थित है, और 2021 में स्थिति अपरिवर्तित है।
<syntaxhighlight lang="xml">
<?xml-stylesheet href="example2.xsl" type="text/xsl" ?>
</syntaxhighlight>


इस उदाहरण में, <code>टेक्स्ट/एक्सएसएल</code> डब्ल्यू3सी विनिर्देशों के अनुसार तकनीकी रूप से गलत है<ref name="w3cxslt" /> (जो कहते है कि प्रकार होना चाहिए <code>एप्लीकेशन/एक्सएसएलटी+एक्सएमएल</code>), लेकिन यह एकमात्र मीडिया प्रकार है जो 2009 तक सभी ब्राउज़रों में व्यापक रूप से समर्थित था, और 2021 में इसकी स्थिति अपरिवर्तित थी।
== प्रोसेसर कार्यान्वयन ==
== प्रोसेसर कार्यान्वयन ==
*[[अल्टोवा]] से रैप्टरएक्सएमएल एक [[एक्सएसएलटी]] 3.0 प्रोसेसर है जो एक्सएमएलस्पाई डेवलपमेंट टूलकिट में उपलब्ध है और एक फ्री-स्टैंडिंग सर्वर कार्यान्वयन के रूप में, एक रेस्ट इंटरफेस का उपयोग करके लागू किया गया है।
*[[अल्टोवा]] से रैप्टरएक्सएमएल एक [[एक्सएसएलटी]] 3.0 प्रोसेसर है जो एक्सएमएलस्पाई विकास टूलकिट में उपलब्ध होते है और एक फ्री-स्टैंडिंग सर्वर कार्यान्वयन के रूप में, एक रेस्ट इंटरफेस का उपयोग करके लागू किया गया था।
*[[IBM|आईबीएम]], [[IBM WebSphere DataPower SOA उपकरण|आईबीएम WebSphere DataPower SOA उपकरण]] ब्रांड के तहत एक विशेष-उद्देश्य वाले हार्डवेयर उपकरण में एम्बेड किए गए एक्सएसएलटी प्रसंस्करण की पेशकश करता है।
*[[IBM|आईबीएम]] [[IBM WebSphere DataPower SOA उपकरण|डेटापॉवर ब्रांड]] के अनुसार एक विशेष प्रयोजन के हार्डवेयर उपकरण में एम्बेडेड एक्सएसएलटी प्रसंस्करण प्रदान करता है।
*[[libxslt|libएक्सएसएलटी]] [[मेरा लाइसेंस]] के तहत जारी एक [[मुफ्त सॉफ्टवेयर]] [[पुस्तकालय (कम्प्यूटिंग)]] है जिसे व्यावसायिक अनुप्रयोगों में पुन: उपयोग किया जा सकता है। यह [[libxml|libएक्सएमएल]] पर आधारित है और गति और सुवाह्यता के लिए C (प्रोग्रामिंग भाषा) में लागू किया गया है। यह एक्सएसएलटी 1.0 और Eएक्सएसएलटी एक्सटेंशन को सपोर्ट करता है।<ref>{{cite web|title=The XSLT C library for GNOME: libxslt|url=http://xmlsoft.org/XSLT/index.html|access-date=23 November 2012}}</ref>
*[[libxml|लिबएक्सएमएल]] एमआईटी लाइसेंस के अनुसार जारी की गई एक मुफ्त लाइब्रेरी है जिसे व्यावसायिक अनुप्रयोगों में पुन: उपयोग किया जा सकता है। यह [[libxml|लिबएक्सए]]<nowiki/>[[libxml|मएल]]<nowiki/>l पर आधारित है और गति और सुवाह्यता के लिए सी (प्रोग्रामिंग भाषा) में लागू किया गया है। यह एक्सएसएलटी 1.0 और एक्सएसएलटी विस्तार को सहायता करता है।<ref>{{cite web|title=The XSLT C library for GNOME: libxslt|url=http://xmlsoft.org/XSLT/index.html|access-date=23 November 2012}}</ref>
** इसे एक्सएसएलटीproc के माध्यम से कमांड लाइन पर इस्तेमाल किया जा सकता है<ref>{{cite web|title=The XSLT C library for GNOME: The xsltproc tool|url=http://xmlsoft.org/XSLT/xsltproc2.html|access-date=23 November 2012}}</ref> जो [[macOS]] में शामिल है<ref>{{cite web|title=xsltproc man page|url=https://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man1/xsltproc.1.html|access-date=23 November 2012}}</ref> और कई [[लिनक्स वितरण]], और साइगविन के माध्यम से [[माइक्रोसॉफ़्ट विंडोज़]] पर इस्तेमाल किया जा सकता है।<ref>{{cite web|title=New package: libxslt|url=http://www.cygwin.com/ml/cygwin-announce/2002/msg00018.html|access-date=23 November 2012}}</ref>
**इसका उपयोग कमांड लाइन पर एक्सएसएलटी प्रो सी<ref>{{cite web|title=The XSLT C library for GNOME: The xsltproc tool|url=http://xmlsoft.org/XSLT/xsltproc2.html|access-date=23 November 2012}}</ref> के माध्यम से किया जा सकता है जो [[macOS|मैकओएस]]<ref>{{cite web|title=xsltproc man page|url=https://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man1/xsltproc.1.html|access-date=23 November 2012}}</ref> और कई [[लिनक्स वितरण|लिनक्स वितरणों]] में सम्मलित होते है, और साइगविन के माध्यम से [[माइक्रोसॉफ़्ट विंडोज़]] पर उपयोग किया जा सकता है।<ref>{{cite web|title=New package: libxslt|url=http://www.cygwin.com/ml/cygwin-announce/2002/msg00018.html|access-date=23 November 2012}}</ref>
**[[वेबकिट]] और [[ब्लिंक (लेआउट इंजन)]] लेआउट इंजन, उदाहरण के लिए क्रमशः [[एप्पल सफारी]] और Google क्रोम वेब ब्राउज़र में उपयोग किए जाते हैं, एक्सएसएल ट्रांसफॉर्मेशन करने के लिए libएक्सएसएलटी लाइब्रेरी का उपयोग करते हैं।<ref>{{cite web | url=http://webkit.org/projects/xslt/index.html | title=The WebKit Open Source Project - XSLT | access-date=2009-10-25}}</ref>
**[[वेबकिट]] और [[ब्लिंक (लेआउट इंजन)]], उदाहरण के लिए क्रमशः [[एप्पल सफारी]] और गूगल क्रोम वेब ब्राउज़र में उपयोग किए जाता है, एक्सएसएल परिवर्तन करने के लिए लिबएक्सएसएलटी लाइब्रेरी का उपयोग जाता है।<ref>{{cite web | url=http://webkit.org/projects/xslt/index.html | title=The WebKit Open Source Project - XSLT | access-date=2009-10-25}}</ref>
** भाषा बाध्यकारी [[पायथन (प्रोग्रामिंग भाषा)]] के लिए मौजूद है,<ref>{{cite web|title=The XML C parser and toolkit of Gnome: Python and bindings|url=http://xmlsoft.org/python.html|access-date=23 November 2012}}</ref> [[पर्ल]],<ref>{{cite web|title=XML::LibXSLT - Interface to the GNOME libxslt library|url=https://metacpan.org/module/XML::LibXSLT|publisher=CPAN|access-date=23 November 2012}}</ref> [[रूबी (प्रोग्रामिंग भाषा)]],<ref>{{cite web|title=libxslt-ruby|url=http://rubygems.org/gems/libxslt-ruby|access-date=23 November 2012}}</ref> [[पीएचपी]],<ref>{{cite web|title=libxml|url=http://www.php.net/manual/en/book.libxml.php|access-date=23 November 2012}}</ref> [[सामान्य लिस्प]],<ref>{{cite web|title=cl-libxml2 High-level wrapper around libxml2 and libxslt libraries |url=https://code.google.com/p/cl-libxml2/}}</ref> [[टीसीएल]],<ref>{{cite web|title=टीसीएलएक्सएमएल|url=http://tclxml.sourceforge.net/|access-date=21 May 2013}}</ref> और [[सी ++]]<ref>{{cite web|title=libxml++|url=http://libxmlplusplus.sourceforge.net/|publisher=sourceforge.net|access-date=23 November 2012}}</ref>
**[[पायथन (प्रोग्रामिंग भाषा)]],<ref>{{cite web|title=The XML C parser and toolkit of Gnome: Python and bindings|url=http://xmlsoft.org/python.html|access-date=23 November 2012}}</ref> [[पर्ल]],<ref>{{cite web|title=XML::LibXSLT - Interface to the GNOME libxslt library|url=https://metacpan.org/module/XML::LibXSLT|publisher=CPAN|access-date=23 November 2012}}</ref> [[रूबी (प्रोग्रामिंग भाषा)]],<ref>{{cite web|title=libxslt-ruby|url=http://rubygems.org/gems/libxslt-ruby|access-date=23 November 2012}}</ref> [[पीएचपी]],<ref>{{cite web|title=libxml|url=http://www.php.net/manual/en/book.libxml.php|access-date=23 November 2012}}</ref> [[सामान्य लिस्प]],<ref>{{cite web|title=cl-libxml2 High-level wrapper around libxml2 and libxslt libraries |url=https://code.google.com/p/cl-libxml2/}}</ref> [[टीसीएल]],<ref>{{cite web|title=टीसीएलएक्सएमएल|url=http://tclxml.sourceforge.net/|access-date=21 May 2013}}</ref> और [[सी ++]] के लिए बाइंडिंग उपस्तिथ होती है।<ref>{{cite web|title=libxml++|url=http://libxmlplusplus.sourceforge.net/|publisher=sourceforge.net|access-date=23 November 2012}}</ref>
*[[Microsoft]] दो एक्सएसएलटी प्रोसेसर प्रदान करता है (दोनों एक्सएसएलटी 1.0 केवल)। पहले का प्रोसेसर [[MSXML|MSएक्सएमएल]] COM इंटरफेस प्रदान करता है; MSएक्सएमएल 4.0 से इसमें कमांड लाइन उपयोगिता भी शामिल है <code>msxsl.exe</code>.<ref>{{cite web|title=Command Line Transformation Utility (msxsl.exe)|url=http://www.microsoft.com/en-us/download/details.aspx?id=21714|publisher=Microsoft|access-date=22 October 2012}}</ref> .NET रनटाइम में एक अलग बिल्ट-इन एक्सएसएलटी प्रोसेसर शामिल है <code>System.एक्सएमएल.Xsl</code> पुस्तकालय।
*[[Microsoft|माइक्रोसॉफ्ट]] दो एक्सएसएलटी प्रोसेसर प्रदान करता है। पहले का प्रोसेसर [[MSXML|एमएसएक्सएमएल]] सीओएम इंटरफेस प्रदान करता है, एमएसएक्सएमएल 4.0 से इसमें कमांड लाइन उपयोगिता <code>एमएसएक्सएसएल.ईएक्सई</code> भी सम्मलित है।<ref>{{cite web|title=Command Line Transformation Utility (msxsl.exe)|url=http://www.microsoft.com/en-us/download/details.aspx?id=21714|publisher=Microsoft|access-date=22 October 2012}}</ref> .नेट रनटाइम में इसके <code>प्रणाली.एक्सएमएल.एक्सएसएल</code> लाइब्रेरी में एक अलग बिल्ट-इन एक्सएसएलटी प्रोसेसर सम्मलित है।
*[[Saxon XSLT|Saxon एक्सएसएलटी]] एक एक्सएसएलटी 3.0 और एक्सक्वेरी 3.1 प्रोसेसर है जिसमें [[खुला स्रोत सॉफ्टवेयर]] है। स्टैंड-अलोन ऑपरेशन के लिए ओपन-सोर्स और मालिकाना सॉफ़्टवेयर संस्करण और Java (प्रोग्रामिंग लैंग्वेज), [[JavaScript]] और .NET के लिए। एक अलग उत्पाद सैक्सन-जेएस<ref>{{cite web|title=Saxon-JS|url=http://www.saxonica.com/saxon-js/index.xml|publisher=Saxonica|access-date=6 September 2018}}</ref> Node.js और ब्राउज़र में एक्सएसएलटी 3.0 प्रोसेसिंग की पेशकश करता है।
*[[Saxon XSLT|सैक्सन]] एक एक्सएसएलटी 3.0 और एक्सक्वेरी 3.1 प्रोसेसर होता है जिसमें स्टैंड-अलोन ऑपरेशन और जावा, जावास्क्रिप्ट और .नेट के लिए ओपन-सोर्स और मालिकाना संस्करण होता है। एक अलग उत्पाद सैक्सन-जेएस<ref>{{cite web|title=Saxon-JS|url=http://www.saxonica.com/saxon-js/index.xml|publisher=Saxonica|access-date=6 September 2018}}</ref> नोड.जेएस और ब्राउज़र में एक्सएसएलटी 3.0 प्रसंस्करण प्रदान करता है।
*[[Xalan]] जावा और C++ के लिए उपलब्ध [[Apache Software Foundation]] का एक ओपन सोर्स एक्सएसएलटी 1.0 प्रोसेसर है। ओरेकल से मानक जावा वितरण में Xalan प्रोसेसर का एक संस्करण डिफ़ॉल्ट एक्सएसएलटी प्रोसेसर के रूप में शामिल है।
*[[Xalan|जालन]] जावा और सी++ के लिए उपलब्ध [[Apache Software Foundation|अपाचे सॉफ्टवेयर फाउंडेशन]] का एक ओपन सोर्स एक्सएसएलटी 1.0 प्रोसेसर होता है। ओरेकल से मानक जावा वितरण में जालन प्रोसेसर का एक संस्करण डिफ़ॉल्ट एक्सएसएलटी प्रोसेसर के रूप में सम्मलित होता है।
*वेब ब्राउज़र: सफारी, क्रोम, फायरफॉक्स, ओपेरा और इंटरनेट एक्सप्लोरर सभी एक्सएसएलटी 1.0 (केवल) को सपोर्ट करते हैं। ब्राउज़र एक्सएमएल फ़ाइलों का ऑन-द-फ्लाई ट्रांसफ़ॉर्मेशन कर सकते हैं और ब्राउज़र विंडो में ट्रांसफ़ॉर्मेशन आउटपुट प्रदर्शित कर सकते हैं। यह या तो एक्सएमएल दस्तावेज़ में XSL एम्बेड करके या एक्सएमएल दस्तावेज़ से XSL निर्देशों वाली फ़ाइल को संदर्भित करके किया जाता है। बाद वाला अपने सुरक्षा मॉडल के कारण स्थानीय फ़ाइल सिस्टम की फ़ाइलों पर Chrome के साथ काम नहीं कर सकता है।<ref>{{cite web |url= https://bugs.chromium.org/p/chromium/issues/detail?id=58151 |title=Issue 58151: Fails to load xml file on local file system using XMLHttpRequest }}</ref>
*वेब ब्राउज़र: सफारी, क्रोम, फ़ायरफ़ॉक्स, ओपेरा और इंटरनेट एक्सप्लोरर सभी एक्सएसएलटी 1.0 का समर्थन करते है। ब्राउज़र एक्सएमएल फ़ाइलों का ऑन-द-फ्लाई परिवर्तन कर सकते है और ब्राउज़र विंडो में परिवर्तन आउटपुट प्रदर्शित कर सकते है। यह एक्सएमएल दस्तावेज़ में एक्सएसएल एम्बेड करके या एक्सएमएल दस्तावेज़ से एक्सएसएल निर्देशों वाली फ़ाइल को संदर्भित करके किया जाता है। बाद वाला अपने सुरक्षा मॉडल के कारण स्थानीय फ़ाइल प्रणाली से फ़ाइलों पर क्रोम के साथ काम नहीं करता है।<ref>{{cite web |url= https://bugs.chromium.org/p/chromium/issues/detail?id=58151 |title=Issue 58151: Fails to load xml file on local file system using XMLHttpRequest }}</ref>
*Adobe AXSLE इंजन, एक मालिकाना पुस्तकालय
*एडोब एक्सएसएल इंजन, एक मालिकाना पुस्तकालय है।


=== प्रदर्शन ===
=== प्रदर्शन ===
अधिकांश शुरुआती एक्सएसएलटी प्रोसेसर दुभाषिए थे। हाल ही में, लक्ष्य के रूप में पोर्टेबल इंटरमीडिएट भाषाओं (जैसे [[जावा बाइटकोड]] या .NET [[सामान्य मध्यवर्ती भाषा]]) का उपयोग करते हुए, कोड जेनरेशन तेजी से सामान्य हो रहा है। हालांकि, यहां तक ​​कि व्याख्यात्मक उत्पाद आम तौर पर अलग-अलग विश्लेषण और निष्पादन चरणों की पेशकश करते हैं, जिससे एक अनुकूलित अभिव्यक्ति ट्री को स्मृति में बनाया जा सकता है और कई परिवर्तन करने के लिए पुन: उपयोग किया जा सकता है। यह ऑनलाइन प्रकाशन अनुप्रयोगों में पर्याप्त प्रदर्शन लाभ देता है, जहां एक ही परिवर्तन प्रति सेकंड कई बार विभिन्न स्रोत दस्तावेजों पर लागू होता है।<ref>[http://www-128.ibm.com/developerworks/xml/library/x-xslt2/ Saxon: Anatomy of an XSLT processor] - Article describing implementation &amp; optimization details of a popular XSLT processor.</ref> यह पृथक्करण एक्सएसएलटी प्रोसेसिंग API (जैसे एक्सएमएल प्रोसेसिंग के लिए Java API) के डिज़ाइन में परिलक्षित होता है।
अधिकांश प्रारंभिक एक्सएसएलटी प्रोसेसर दुभाषिए होती है। हाल ही में, लक्ष्य के रूप में पोर्टेबल इंटरमीडिएट भाषाओं (जैसे [[जावा बाइटकोड]] या .नेट [[सामान्य मध्यवर्ती भाषा]]) का उपयोग करते हुए, कोड जेनरेशन तेजी से सामान्य हो रहा है। चूंकि, यहां तक कि व्याख्यात्मक उत्पाद सामान्यतः अलग-अलग विश्लेषण और निष्पादन चरणों को प्रस्तुत करते है, जिससे एक अनुकूलित अभिव्यक्ति ट्री को स्मृति में बनाया जा सकता है और कई परिवर्तन करने के लिए पुन: उपयोग किया जा सकता है। यह ऑनलाइन प्रकाशन अनुप्रयोगों में पर्याप्त प्रदर्शन लाभ देता है, जहां एक ही परिवर्तन प्रति सेकंड कई बार विभिन्न स्रोत दस्तावेजों पर लागू होता है।<ref>[http://www-128.ibm.com/developerworks/xml/library/x-xslt2/ Saxon: Anatomy of an XSLT processor] - Article describing implementation &amp; optimization details of a popular XSLT processor.</ref> यह पृथक्करण एक्सएसएलटी प्रोसेसिंग एपीआई (जैसे एक्सएमएल प्रोसेसिंग के लिए जावा एपीआई) के डिज़ाइन में परिलक्षित होता है।
 
शुरुआती एक्सएसएलटी प्रोसेसर में बहुत कम अनुकूलन थे। स्टाइलशीट दस्तावेज़ों को दस्तावेज़ ऑब्जेक्ट मॉडल में पढ़ा गया और प्रोसेसर सीधे उन पर कार्य करेगा। XPath इंजन भी अनुकूलित नहीं थे। हालाँकि, एक्सएसएलटी प्रोसेसर कार्यात्मक प्रोग्रामिंग भाषाओं और डेटाबेस क्वेरी भाषाओं में पाई जाने वाली अनुकूलन तकनीकों का उपयोग करते हैं, जैसे कि एक अभिव्यक्ति ट्री की स्थिर पुनर्लेखन (जैसे, गणनाओं को लूप से बाहर ले जाने के लिए), और मध्यवर्ती परिणामों की मेमोरी फ़ुटप्रिंट को कम करने के लिए आलसी पाइपलाइन मूल्यांकन (और जल्दी बाहर निकलने की अनुमति दें जब प्रोसेसर एक अभिव्यक्ति का मूल्यांकन कर सकता है जैसे <code>following-sibling::*[1]</code> सभी उप-अभिव्यक्तियों के पूर्ण मूल्यांकन के बिना)। कई प्रोसेसर पेड़ के प्रतिनिधित्व का भी उपयोग करते हैं जो काफी अधिक कुशल होते हैं (अंतरिक्ष और समय दोनों में)<ref>{{Cite journal|title=Improving Pattern Matching Performance in XSLT|first1=John|last1=Lumley|first2=Michael|last2=Kay|date=June 2015|journal=XML London 2015|doi=10.14337/XMLLondon15.Lumley01|url=http://xmllondon.com/2015/presentations/lumley|pages=9–25|isbn=978-0-9926471-2-4|doi-access=free}}</ref> सामान्य-उद्देश्य वाले DOM कार्यान्वयनों की तुलना में।
 
जून 2014 में, डेबी लॉकेट और माइकल हॉवर्ड के ने एक्सएसएलटी प्रोसेसर के लिए एक्सटी-स्पीडो नामक एक ओपन-सोर्स बेंचमार्किंग फ्रेमवर्क पेश किया।<ref>{{Cite journal|title=Benchmarking XSLT Performance|first1=Michael|last1=Kay|first2=Debbie|last2=Lockett|date=June 2014|journal=XML London 2014|doi=10.14337/XMLLondon14.Kay01|url=http://xmllondon.com/2014/presentations/kay|pages=10–23|isbn=978-0-9926471-1-7|doi-access=free}}</ref>


प्रारंभिक एक्सएसएलटी प्रोसेसर बहुत कम अनुकूलन होता है। शैली पत्रक दस्तावेज़ों को दस्तावेज़ वस्तु मॉडल में पढ़ा जाता है और प्रोसेसर सीधे उन पर कार्य करता है। एक्सपाथ इंजन अनुकूलित नहीं होता है। चूँकि, एक्सएसएलटी प्रोसेसर कार्यात्मक प्रोग्रामिंग भाषाओं और डेटाबेस क्वेरी भाषाओं में पाई जाने वाली अनुकूलन विधियों का उपयोग करता है, जैसे कि एक अभिव्यक्ति ट्री की स्थिर पुनर्लेखन (जैसे, गणनाओं को लूप से बाहर ले जाने के लिए), और मध्यवर्ती परिणामों की मेमोरी फ़ुटप्रिंट को कम करने के लिए आलसी पाइपलाइन मूल्यांकन (और "जल्दी बाहर निकलने" की अनुमति देता है जब प्रोसेसर सभी उप-अभिव्यक्तियों के पूर्ण मूल्यांकन के बिना <code>निम्नलिखित-सहोदर ::*[1]</code> अभिव्यक्ति का मूल्यांकन कर सकता है)। कई प्रोसेसर ट्री अभ्यावेदन का भी उपयोग करते है जो सामान्य-उद्देश्य वाले डीओएम कार्यान्वयन की तुलना में अधिक कुशल होते है।<ref>{{Cite journal|title=Improving Pattern Matching Performance in XSLT|first1=John|last1=Lumley|first2=Michael|last2=Kay|date=June 2015|journal=XML London 2015|doi=10.14337/XMLLondon15.Lumley01|url=http://xmllondon.com/2015/presentations/lumley|pages=9–25|isbn=978-0-9926471-2-4|doi-access=free}}</ref>


जून 2014 में, डेबी लॉकेट और माइकल के ने एक्सएसएलटी प्रोसेसर के लिए एक्सटी-स्पीडो नामक एक ओपन-सोर्स बेंचमार्किंग फ्रेमवर्क प्रस्तुत किया था।<ref>{{Cite journal|title=Benchmarking XSLT Performance|first1=Michael|last1=Kay|first2=Debbie|last2=Lockett|date=June 2014|journal=XML London 2014|doi=10.14337/XMLLondon14.Kay01|url=http://xmllondon.com/2014/presentations/kay|pages=10–23|isbn=978-0-9926471-1-7|doi-access=free}}</ref>
== यह भी देखें ==
== यह भी देखें ==
* एक्सएसएलटी तत्व - कुछ सामान्य रूप से प्रयुक्त एक्सएसएलटी संरचनाओं की एक सूची।
* एक्सएसएलटी तत्व - कुछ सामान्य रूप से प्रयुक्त एक्सएसएलटी संरचनाओं की एक सूची।
* एक्सएसएलटी/Muenchian समूहीकरण - एक्सएसएलटी1 और एक्सएसएलटी2+ के बीच बोली का अंतर।
* एक्सएसएलटी/Muenchian समूहीकरण - एक्सएसएलटी1 और एक्सएसएलटी2+ के बीच बोली का अंतर।
* एक्स्टेंसिबल स्टाइलशीट लैंग्वेज - भाषाओं का एक परिवार जिसका एक्सएसएलटी एक सदस्य है
* विस्तारणीय शैली पत्रक भाषा - भाषाओं का एक परिवार जिसका एक्सएसएलटी एक सदस्य है
* एक्सक्वेरी# एक्सक्वेरी और एक्सएसएलटी की तुलना
* एक्सक्वेरी# एक्सक्वेरी और एक्सएसएलटी की तुलना
* एक्सएसएल फॉर्मेटिंग ऑब्जेक्ट्स या एक्सएसएल-एफओ - दस्तावेज़ों के लिए एक एक्सएमएल-आधारित भाषा, आमतौर पर एक्सएसएलटी के साथ स्रोत दस्तावेज़ों को बदलने से उत्पन्न होती है, जिसमें स्वरूपित आउटपुट बनाने के लिए उपयोग की जाने वाली वस्तुएं शामिल होती हैं।
* एक्सएसएल फॉर्मेटिंग वस्तुओं या एक्सएसएल-एफओ - दस्तावेज़ों के लिए एक एक्सएमएल-आधारित भाषा, सामान्यतः एक्सएसएलटी के साथ स्रोत दस्तावेज़ों को बदलने से उत्पन्न होती है, जिसमें स्वरूपित आउटपुट बनाने के लिए उपयोग की जाने वाली वस्तुएं सम्मलित होती है।
* [[पहचान परिवर्तन]] - फिल्टर चेन के लिए एक शुरुआती बिंदु जो एक ट्रांसफॉर्मेशन पाइपलाइन में एक्सएमएल ट्री से डेटा एलिमेंट्स को जोड़ता या हटाता है
* [[पहचान परिवर्तन]] - फिल्टर चेन के लिए एक प्रारंभिक बिंदु जो एक परिवर्तन पाइपलाइन में एक्सएमएल ट्री से डेटा एलिमेंट्स को जोड़ता या हटाता है
* [[अपाचे कोकून]] - एक्सएसएलटी और अन्य ट्रांसफार्मर के साथ डेटा प्रोसेसिंग के लिए एक जावा (प्रोग्रामिंग भाषा) आधारित ढांचा।
* [[अपाचे कोकून]] - एक्सएसएलटी और अन्य ट्रांसफार्मर के साथ डेटा प्रोसेसिंग के लिए एक जावा (प्रोग्रामिंग भाषा) आधारित ढांचा।


Line 224: Line 225:
==अग्रिम पठन==
==अग्रिम पठन==
* ''एक्सएसएलटी'' by Doug Tidwell, published by O’Reilly ({{ISBN|0-596-00053-7}})
* ''एक्सएसएलटी'' by Doug Tidwell, published by O’Reilly ({{ISBN|0-596-00053-7}})
* ''एक्सएसएलटी Cookbook'' by Sal Mangano, published by O’Reilly ({{ISBN|0-596-00974-7}})
* ''एक्सएसएलटी cookbook'' by Sal Mangano, published by O’Reilly ({{ISBN|0-596-00974-7}})
* ''एक्सएसएलटी 2.0 Programmer's Reference'' by [[Michael Howard Kay|Michael Kay]] ({{ISBN|0-764-56909-0}})
* ''एक्सएसएलटी 2.0 programmer's Reference'' by [[Michael Howard Kay|Michael Kay]] ({{ISBN|0-764-56909-0}})
* ''एक्सएसएलटी 2.0 and XPath 2.0 Programmer's Reference'' by Michael Kay ({{ISBN|978-0-470-19274-0}})
* ''एक्सएसएलटी 2.0 and एक्सपाथ 2.0 programmer's Reference'' by Michael Kay ({{ISBN|978-0-470-19274-0}})
* ''एक्सएसएलटी 2.0 Web Development'' by Dmitry Kirsanov ({{ISBN|0-13-140635-3}})
* ''एक्सएसएलटी 2.0 web Development'' by Dmitry Kirsanov ({{ISBN|0-13-140635-3}})
* ''XSL Companion, 2nd Edition'' by Neil Bradley, published by Addison-Wesley ({{ISBN|0-201-77083-0}})
* ''एक्सएसएल companion, 2nd Edition'' by Neil Bradley, published by Addison-wesley ({{ISBN|0-201-77083-0}})
* ''एक्सएसएलटी and XPath on the Edge (Unlimited Edition)'' by [[Jeni Tennison]], published by Hungry Minds Inc, U.S. ({{ISBN|0-7645-4776-3}})
* ''एक्सएसएलटी and एक्सपाथ on the Edge (Unlimited Edition)'' by [[Jeni Tennison]], published by Hungry Minds Inc, U.S. ({{ISBN|0-7645-4776-3}})
* ''एक्सएसएलटी & XPath, A Guide to एक्सएमएल Transformations'' by John Robert Gardner and Zarella Rendon, published by Prentice-Hall ({{ISBN|0-13-040446-2}})
* ''एक्सएसएलटी & एक्सपाथ, A Guide to एक्सएमएल Transformations'' by John Robert Gardner and Zarella Rendon, published by Prentice-Hall ({{ISBN|0-13-040446-2}})
* ''XSL-FO'' by Dave Pawson, published by O'Reilly ({{ISBN|978-0-596-00355-5}})
* ''एक्सएसएल-FO'' by Dave Pawson, published by O'Reilly ({{ISBN|978-0-596-00355-5}})




==बाहरी संबंध==
==बाहरी संबंध==
{{Wikibooks|XML - Managing Data Exchange/XSLT and Style Sheets}}
; प्रलेखन
{{Commons category|Extensible Stylesheet Language Transformations}}
* [https://www.w3.org/TR/xslt-10/ एक्सएसएलटी 1.0 w3c Recommendation]
; Documentation
* [http://www.w3.org/TR/xslt20/ एक्सएसएलटी 2.0 w3c Recommendation]
* [https://www.w3.org/TR/xslt-10/ एक्सएसएलटी 1.0 W3C Recommendation]
* [http://www.w3.org/TR/xslt-30/ एक्सएसएलटी 3.0 w3c Recommendation]
* [http://www.w3.org/TR/xslt20/ एक्सएसएलटी 2.0 W3C Recommendation]
* [http://www.w3.org/TR/xslt-30/ एक्सएसएलटी 3.0 W3C Recommendation]
* [https://developer.mozilla.org/en/XSLT एक्सएसएलटी - MDC Docs] {{Webarchive|url=https://web.archive.org/web/20111226235131/https://developer.mozilla.org/en/XSLT |date=2011-12-26 }} by [https://developer.mozilla.org Mozilla Developer Network]
* [https://developer.mozilla.org/en/XSLT एक्सएसएलटी - MDC Docs] {{Webarchive|url=https://web.archive.org/web/20111226235131/https://developer.mozilla.org/en/XSLT |date=2011-12-26 }} by [https://developer.mozilla.org Mozilla Developer Network]
* [http://msdn.microsoft.com/en-us/library/ms256069.aspx एक्सएसएलटी Reference (MSDN)]
* [http://msdn.microsoft.com/en-us/library/ms256069.aspx एक्सएसएलटी Reference (MSDN)]
* [http://saxon.sourceforge.net/saxon7.5/xsl-elements.html एक्सएसएलटी Elements (Saxon)]
* [http://saxon.sourceforge.net/saxon7.5/xsl-elements.html एक्सएसएलटी Elements (सैक्सन)]
* [http://data2type.de/en/xml-xslt-xslfo/xslt/ एक्सएसएलटी introduction and reference]
* [http://data2type.de/en/xml-xslt-xslfo/xslt/ एक्सएसएलटी introduction and reference]


; एक्सएसएलटी code libraries
; एक्सएसएलटी code libraries
* [http://www.exslt.org/ Eएक्सएसएलटी] is a widespread community initiative to provide extensions to एक्सएसएलटी.
* [http://www.exslt.org/ Eएक्सएसएलटी] is a widespread community initiative to provide extensions to एक्सएसएलटी.
* [http://fxsl.sf.net/ FXSL] is a library implementing support for [[Higher-order function]]s in एक्सएसएलटी. FXSL is written in एक्सएसएलटी itself.
* [http://fxsl.sf.net/ Fएक्सएसएल] is a library implementing support for [[Higher-order function]]s in एक्सएसएलटी. Fएक्सएसएल is written in एक्सएसएलटी itself.
* [http://xsltsl.sourceforge.net/ The एक्सएसएलटी Standard Library] एक्सएसएलटीsl, provides the एक्सएसएलटी developer with a set of एक्सएसएलटी templates for commonly used functions. These are implemented purely in एक्सएसएलटी, that is they do not use any extensions. एक्सएसएलटीsl is a SourceForge project.
* [http://xsltsl.sourceforge.net/ The एक्सएसएलटी Standard library] एक्सएसएलटीsl, provides the एक्सएसएलटी developer with a set of एक्सएसएलटी templates for commonly used functions. These are implemented purely in एक्सएसएलटी, that is they do not use any extensions. एक्सएसएलटीsl is a SourceForge project.
* [http://kernowforsaxon.sf.net/ Kernow] A GUI for Saxon that provides a point and click interface for running transforms.
* [http://kernowforsaxon.sf.net/ Kernow] A GUI for सैक्सन that provides a point and click interface for running transforms.
* [http://johannburkard.de/software/xsltjs/ एक्सएसएलटी.js&nbsp;– Transform एक्सएमएल with एक्सएसएलटी] JavaScript library that transforms एक्सएमएल with एक्सएसएलटी in the browser.
* [http://johannburkard.de/software/xsltjs/ एक्सएसएलटी.js&nbsp;– Transform एक्सएमएल with एक्सएसएलटी] जावाScript library that transforms एक्सएमएल with एक्सएसएलटी in the browser.
 
{{XSL}}
{{W3C Standards}}


{{Authority control}}
{{Authority control}}


{{DEFAULTSORT:Xsl Transformations}}[[Category: घोषणात्मक प्रोग्रामिंग भाषाएँ]] [[Category: कार्यात्मक भाषाएँ]] [[Category: मार्कअप भाषाएँ]] [[Category: रूपांतरण भाषाएँ]] [[Category: वर्ल्ड वाइड वेब कंसोर्टियम मानक]] [[Category: XML- आधारित प्रोग्रामिंग भाषाएँ]] [[Category: XML- आधारित मानक]] [[Category: उदाहरण कोड वाले लेख]] [[Category: 1998 में बनाई गई प्रोग्रामिंग लैंग्वेज]] [[Category: 1998 सॉफ्टवेयर]] [[Category: उच्च स्तरीय प्रोग्रामिंग भाषाएं]] [[Category: होमोइकोनिक प्रोग्रामिंग लैंग्वेज]] [[Category: प्रोग्रामिंग भाषा]]
{{DEFAULTSORT:Xsl Transformations}}
 
 


[[Category: Machine Translated Page]]
[[Category:1998 में बनाई गई प्रोग्रामिंग लैंग्वेज|Xsl Transformations]]
[[Category:Created On 18/02/2023]]
[[Category:1998 सॉफ्टवेयर|Xsl Transformations]]
[[Category:Articles with hatnote templates targeting a nonexistent page|Xsl Transformations]]
[[Category:CS1 English-language sources (en)]]
[[Category:Created On 18/02/2023|Xsl Transformations]]
[[Category:Lua-based templates|Xsl Transformations]]
[[Category:Machine Translated Page|Xsl Transformations]]
[[Category:Pages with reference errors|Xsl Transformations]]
[[Category:Pages with script errors|Xsl Transformations]]
[[Category:Short description with empty Wikidata description|Xsl Transformations]]
[[Category:Template documentation pages|Short description/doc]]
[[Category:Templates Vigyan Ready|Xsl Transformations]]
[[Category:Templates that add a tracking category|Xsl Transformations]]
[[Category:Templates that generate short descriptions|Xsl Transformations]]
[[Category:Templates using TemplateData|Xsl Transformations]]
[[Category:Webarchive template wayback links|Xsl Transformations]]

Latest revision as of 13:32, 17 March 2023

XSLT
ParadigmDeclarative
DeveloperWorld Wide Web Consortium (W3C)
पहली प्रस्तुति1998
Stable release
3.0 / June 8, 2017; 7 years ago (2017-06-08)
फ़ाइल नाम एक्सटेंशनएस.xslt
वेबसाइटwww.w3.org/TR/xslt-30/
Major implementations
libxslt, Saxon, Xalan
Influenced by
DSSSL

एक्सएसएलटी (विस्तारणीय शैली पत्रक भाषा परिवर्तन) मूल रूप से एक्सएमएल दस्तावेजों को,[1] या वेब पेजों के लिए एचटीएमएल जैसे अन्य प्रारूपों को, साधारण टेक्स्ट या एक्सएसएल फॉर्मेटिंग वस्तुओं में बदलने के लिए डिज़ाइन की गई भाषा होती है, जिसे बाद में अन्य प्रारूपों में परिवर्तित किया जा सकता है। जैसे पीडीएफ, पोस्टस्क्रिप्ट और पीएनजी।[2] एक्सएसएलटी 1.0 विनिर्देशन के बाद के अपडेट में जेएसओएन और सिंपल-टेक्स्ट परिवर्तन के लिए समर्थन जोड़ा गया था।

अगस्त 2022 तक, भाषा का सबसे हाल ही का स्थिर संस्करण एक्सएसएलटी 3.0 है, जिसने जून 2017 में सिफारिश की स्थिति प्राप्त की थी।

एक्सएसएलटी 3.0 कार्यान्वयन जावा, .नेट, सी/सी++, पायथन, पीएचपी और नोडजेएस की सहायता करता है। एक एक्सएसएलटी 3.0 जावास्क्रिप्ट लाइब्रेरी को वेब ब्राउज़र में भी होस्ट किया जा सकता है। आधुनिक वेब ब्राउज़र में एक्सएसएलटी 1.0 के लिए मूल समर्थन भी सम्मलित होते है।[3]

एक एक्सएसएलटी दस्तावेज़ के परिवर्तन के लिए, मूल दस्तावेज़ को नहीं बदला जाता है, जबकि, उपस्थित दस्तावेज़ की सामग्री के आधार पर एक नया दस्तावेज़ बनाया जाता है।[4] विशिष्ट रूप से, इनपुट दस्तावेज़ एक्सएमएल फ़ाइलें होती है, लेकिन कोई भी चीज़ जिससे प्रोसेसर एक्सक्वेरी और एक्सपाथ डेटा मॉडल का निर्माण कर सकता है, उसका उपयोग किया जा सकता है, जैसे संबंध का डेटाबेस टेबल या भौगोलिक सूचना प्रणाली[5]

जबकि एक्सएसएलटी को मूल रूप से एक्सएमएल परिवर्तन के लिए एक विशेष-उद्देश्य वाली भाषा के रूप में डिजाइन किया गया था, यह भाषा ट्यूरिंग-पूर्ण होती है, जो इसे सैद्धांतिक रूप से संगणना करने में सक्षम बनाती है।[6]

इतिहास

एक्सएसएलटी कार्यात्मक भाषाओं,[7] और स्नोबोल और एडब्ल्यूके जैसी टेक्स्ट-आधारित स्वरूप मिलान भाषाओं से प्रभावित होता है। इसका सबसे प्रत्यक्ष पूर्ववर्ती डीएसएसएसएल होता है, जो एसजीएमएल के लिए वही करता है जो एक्सएसएलटी एक्सएमएल के लिए करता है।[8]

  • एक्सएसएलटी 1.0: एक्सएसएलटी विश्वव्यापी वेब संकाय (डब्ल्यू3सी) के विस्तारणीय शैली पत्रक भाषा (एक्सएसएल) के 1998-1999 के विकास प्रयास का हिस्सा था, एक ऐसी परियोजना जिसने एक्सएसएल-एफओ और एक्सपाथ का भी उत्पादन किया था। एक्सएसएलटी को विकसित करने वाले मानक समिति के कुछ सदस्य, जिनमें संपादक जेम्स क्लार्क भी सम्मलित है, उन्होंने पहले डीएसएसएसएल पर काम किया था। एक्सएसएलटी 1.0 को नवंबर 1999 में डब्ल्यू3सी अनुशंसा के रूप में प्रकाशित किया गया था।[9] इसकी उम्र के अतिरिक्त, एक्सएसएलटी 1.0[10] अभी भी व्यापक रूप से उपयोग किया जाता है (2018 तक), क्योंकि बाद के संस्करण वेब ब्राउज़र या एलएएमपी जैसे वातावरण के लिए मूल रूप से समर्थित नहीं थे।
  • एक्सएसएलटी 2.0: 2001 में एक संस्करण 1.1 बनाने के असफल प्रयास के बाद,[11] एक्सएसएल कार्यकारी समूह ने एक्सपाथ 2.0 बनाने के लिए एक्सक्वेरी कार्यकारी समूह के साथ सेना में सम्मलित हो गए थे,[12] एक्सएमएल स्कीमा पर आधारित एक समृद्ध डेटा मॉडल और प्रकार प्रणाली पर निर्माण एक्सएसएलटी 2.0 होता है,[13] माइकल हॉवर्ड के संपादन के अनुसार विकसित किया गया था, जो जनवरी 2007 में सिफारिश की स्थिति तक पहुंच गया था।[14] एक्सएसएलटी 2.0 में सबसे महत्वपूर्ण नवप्रवर्तनों में सम्मलित है:
    • नियमित अभिव्यक्ति का उपयोग करते हुए स्ट्रिंग हेरफेर
    • दिनांक, समय और अवधि में हेरफेर करने के लिए कार्य और ऑपरेटर
    • एकाधिक आउटपुट दस्तावेज़
    • समूहन (फ्लैट इनपुट अनुक्रमों से पदानुक्रमित संरचना बनाना)
    • एक समृद्ध प्रकार की प्रणाली और मजबूत प्रकार की जाँच
  • एक्सएसएलटी 3.0: 8 जून 2017 को डब्ल्यू3सी अनुशंसा बन गया था। मुख्य नई विशेषताएं है:[15]
  • स्ट्रीमिंग परिवर्तन: पिछले संस्करणों में पूरे इनपुट दस्तावेज़ को संसाधित करने से पहले मेमोरी में पढ़ना पड़ता था,[16] और प्रसंस्करण समाप्त होने तक आउटपुट नहीं लिखा जा सकता था। एक्सएसएलटी 3.0 एक्सएमएल स्ट्रीमिंग की अनुमति देता है जो स्मृति में फ़िट होने के लिए बहुत बड़े दस्तावेज़ों को प्रोसेस करने के लिए उपयोगी होता है या जब एक्सएमएल पाइपलाइनों में परिवर्तन जारी होता है।
    • संकुल, बड़ी शैली पत्रक की प्रतिरूपकता में सुधार करने के लिए होता है।
    • उदाहरण के लिए, एक्सएसएल:try निर्देश के साथ गतिशील त्रुटियों का बेहतर प्रबंधन करने के लिए होता है।
    • नक्शे और सरणियों के लिए समर्थन, एक्सएसएलटी को जेएसओएन के साथ-साथ एक्सएमएल को संभालने में सक्षम बनाता है।
    • कार्य अब अन्य (उच्च-क्रम) कार्यों के लिए तर्क हो सकते है।

डिजाइन और प्रसंस्करण मॉडल

विस्तारणीय शैली पत्रक भाषा परिवर्तन के मूल तत्वों और प्रक्रिया प्रवाह का आरेख।

एक्सएसएलटी प्रोसेसर एक या अधिक एक्सएमएल स्रोत दस्तावेज़ों के साथ-साथ एक या अधिक एक्सएसएलटी शैली पत्रक लेता है, और उन्हें एक या एकाधिक आउटपुट दस्तावेज़ बनाने के लिए संसाधित करता है।[17][18] सी (प्रोग्रामिंग भाषा), एक्सएसएलटी जैसे व्यापक रूप से लागू अनिवार्य प्रोग्रामिंग भाषाओं के विपरीत घोषणात्मक होता है।[19] मूल प्रसंस्करण प्रतिमान स्वरूप मिलान होता है।[20] स्टेटफुल वातावरण में प्रदर्शन करने के लिए क्रियाओं के एक अनिवार्य अनुक्रम को सूचीबद्ध करने के अतिरिक्त, टेम्पलेट नियम केवल यह परिभाषित करते है कि किसी विशेष एक्सपाथ-जैसे स्वरूप से मेल खाने वाले नोड को कैसे संभालना होता है, यदि प्रोसेसर को एक का सामना करना होता है, और टेम्पलेट की सामग्री प्रभावी रूप से कार्यात्मक होती है तो अभिव्यक्तियाँ होती है जो सीधे उनके मूल्यांकित रूप का प्रतिनिधित्व करती है: परिणाम ट्री, जो प्रोसेसर के आउटपुट का आधार होता है।

एक विशिष्ट प्रोसेसर निम्नानुसार व्यवहार करता है। सबसे पहले, यह मानते हुए कि शैली पत्रक पहले ही पढ़ी और तैयार की जा चुकी है, प्रोसेसर इनपुट एक्सएमएल दस्तावेज़ से एक स्रोत ट्री बनाता है। इसके बाद यह स्रोत ट्री के रूट नोड को संसाधित करता है, शैली पत्रक में उस नोड के लिए सबसे अच्छा मेल खाने वाला टेम्पलेट ढूंढता है, और टेम्पलेट की सामग्री का मूल्यांकन करता है। प्रत्येक टेम्प्लेट में निर्देश सामान्यतः प्रोसेसर को या तो परिणाम ट्री में नोड्स बनाने के लिए निर्देशित करता है, या रूट नोड के समान ही स्रोत ट्री में अधिक नोड्स को प्रोसेस करने के लिए निर्देशित करता है। अंत में परिणाम ट्री को एक्सएमएल या एचटीएमएल टेक्स्ट के रूप में क्रमबद्ध किया जाता है।

एक्सपाथ

एक्सएसएलटी स्रोत दस्तावेज़ ट्री के सबसेट की पहचान करने और गणना करने के लिए एक्सपाथ का उपयोग करता है। एक्सपाथ कई प्रकार के फ़ंक्शन भी प्रदान करता है, जिसे एक्सएसएलटी स्वयं और बढ़ाता है।

एक्सएसएलटी 1.0 एक्सपाथ 1.0 का उपयोग करता है, जबकि एक्सएसएलटी 2.0 एक्सपाथ 2.0 का उपयोग करता है। 1.0 और 2.0 के स्थिति में, एक्सएसएलटी और एक्सपाथ विनिर्देशों को एक ही तिथि पर प्रकाशित किया गया था। 3.0 के साथ, चूंकि, वे अब साथ नहीं थे, एक्सपाथ 3.0 अप्रैल 2014 में एक सिफारिश बन गया था, उसके बाद फरवरी 2017 में एक्सपाथ 3.1, एक्सएसएलटी 3.0 जून 2017 में आया था।

एक्सक्वेरी तुलना

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

एक्सएसएलटी 2.0 और एक्सक्वेरी 1.0 मानकों को डब्ल्यू3सी के भीतर अलग-अलग कार्य समूहों द्वारा विकसित किया गया था, जहां उपयुक्त में, एक सामान्य दृष्टिकोण सुनिश्चित करने के लिए मिलकर काम करते थे। वे समान डेटा मॉडल, टाइप प्रणाली और फ़ंक्शन लाइब्रेरी साझा करते थे, और दोनों में एक्सपाथ 2.0 को एक उपभाषा के रूप में सम्मलित किये गए थे।

चूँकि, दो भाषाएँ विभिन्न परंपराओं में निहित है और विभिन्न समुदायों की आवश्यकताओं को पूरा करती है। एक्सएसएलटी को मुख्य रूप से एक शैली पत्रक भाषा के रूप में माना गया था जिसका प्राथमिक लक्ष्य वेब पर (एक वेब टेम्पलेट भाषा के रूप में), या कागज पर मानव टेक्स्टक के लिए एक्सएमएल को प्रस्तुत करना था। एक्सक्वेरी को मुख्य रूप से एसक्यूएल की परंपरा में डेटाबेस क्वेरी भाषा के रूप में माना गया था।

क्योंकि दो भाषाओं की उत्पत्ति विभिन्न समुदायों में हुई थी, एक्सएसएलटी अधिक लचीली संरचना के साथ वर्णनात्मक दस्तावेज़ों को संभालने में अधिक मजबूत था, जबकि एक्सक्वेरी अपने डेटा प्रबंधन में अधिक मजबूत था, उदाहरण के लिए संबंधपरक जुड़ाव करते समय।[21]

मीडिया प्रकार

<आउटपुट> तत्व वैकल्पिक रूप से विशेषता ले सकता है मीडिया-प्रकार, जो किसी को परिणामी आउटपुट के लिए इंटरनेट मीडिया प्रकार (या एमआईएमई प्रकार) सेट करने की अनुमति देता है, उदाहरण के लिए: <एक्सएसएल:आउटपुट आउटपुट="एक्सएमएल" मीडिया-प्रकार="एप्लीकेशन/एक्सएमएल"/> एक्सएसएलटी 1.0 अनुशंसा अधिक सामान्य विशेषता प्रकारों की अनुशंसा करती है टेक्स्ट/एक्सएमएल और एप्लीकेशन/एक्सएमएल चूंकि लंबे समय से एक्सएसएलटी के लिए कोई पंजीकृत मीडिया प्रकार नहीं था। इस समय के दौरान टेक्स्ट/एक्सएसएल वास्तविक मानक बन गया था। एक्सएसएलटी 1.0 में यह निर्दिष्ट नहीं किया गया था कि कैसे मीडिया-प्रकार मूल्यों का प्रयोग करना होता है।

एक्सएसएलटी 2.0 की रिलीज़ के साथ, डब्ल्यू3सी ने एमआईएमई मीडिया प्रकार के पंजीकरण की सिफारिश की थी एप्लीकेशन/एक्सएसएलटी+एक्सएमएल[22] और इसे बाद में इंटरनेट निरुपित नंबर प्राधिकरण के साथ पंजीकृत किया गया था।[23]

एक्सएसएलटी के प्री-1.0 कार्यरत ड्राफ्ट का उपयोग किया गया था टेक्स्ट/एक्सएसएल उनके एम्बेडिंग उदाहरणों में, इस प्रकार को लागू किया गया था और माइक्रोसॉफ्ट द्वारा इंटरनेट एक्सप्लोरर में प्रचारित किया गया था[24] और एमएसएक्सएमएल को भी व्यापक रूप से मान्यता प्राप्त है। एक्सएमएल-स्टाइलशीट इसलिए, इस प्रसंस्करण निर्देश का उपयोग करके ब्राउज़र में परिवर्तन को नियंत्रित करने के इच्छुक उपयोगकर्ता इस अपंजीकृत मीडिया प्रकार का उपयोग करने के लिए बाध्य होता है।[25]

उदाहरण

ये उदाहरण निम्न आवक एक्सएमएल दस्तावेज़ का उपयोग करते है

<?xml version="1.0" ?>
<persons>
  <person username="JS1">
    <name>John</name>
    <family-name>Smith</family-name>
  </person>
  <person username="MI1">
    <name>Morka</name>
    <family-name>Ismincius</family-name>
  </person>
</persons>

उदाहरण 1 (एक्सएमएल को एक्सएमएल में बदलना)

यह एक्सएसएलटी शैली पत्रक एक्सएमएल दस्तावेज़ को रूपांतरित करने के लिए टेम्पलेट प्रदान करती है:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
  <xsl:output method="xml" indent="yes"/>

  <xsl:template match="/persons">
    <root>
      <xsl:apply-templates select="person"/>
    </root>
  </xsl:template>

  <xsl:template match="person">
    <name username="{@username}">
      <xsl:value-of select="name" />
    </name>
  </xsl:template>

</xsl:stylesheet>

इसका मूल्यांकन एक नए एक्सएमएल दस्तावेज़ में होता है, जिसमें एक और संरचना होती है:

<?xml version="1.0" encoding="UTF-8"?>
<root>
  <name username="JS1">John</name>
  <name username="MI1">Morka</name>
</root>

उदाहरण 2 (एक्सएमएल को एक्सएचटीएमएल में बदलना)

निम्न उदाहरण एक्सएसएलटी फ़ाइल संसाधित करता है

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet
  version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns="http://www.w3.org/1999/xhtml">

  <xsl:output method="xml" indent="yes" encoding="UTF-8"/>

  <xsl:template match="/persons">
    <html>
      <head> <title>Testing XML Example</title> </head>
      <body>
        <h1>Persons</h1>
        <ul>
          <xsl:apply-templates select="person">
            <xsl:sort select="family-name" />
          </xsl:apply-templates>
        </ul>
      </body>
    </html>
  </xsl:template>

  <xsl:template match="person">
    <li>
      <xsl:value-of select="family-name"/><xsl:text>, </xsl:text><xsl:value-of select="name"/>
    </li>
  </xsl:template>

</xsl:stylesheet>

उपरोक्त दिखाए गए एक्सएमएल इनपुट फ़ाइल के साथ निम्नलिखित एक्सएचटीएमएल में परिणाम (व्हाट्सएप (कंप्यूटर विज्ञान) को स्पष्टता के लिए यहां समायोजित किया गया है):

<?xml version="1.0" encoding="UTF-8"?>
<html xmlns="http://www.w3.org/1999/xhtml">
  <head> <title>Testing XML Example</title> </head>
  <body>
    <h1>Persons</h1>
      <ul>
        <li>Ismincius, Morka</li>
        <li>Smith, John</li>
      </ul>
  </body>
</html>

वेब ब्राउजर में प्रस्तुत किए जाने पर यह एक्सएचटीएमएल नीचे आउटपुट उत्पन्न करता है।

एक एक्सएमएल इनपुट फ़ाइल और एक एक्सएसएलटी परिवर्तन से उत्पन्न एक्सएचटीएमएल प्रस्तुत किया गया।

एक वेब ब्राउज़र के लिए प्रदर्शन पर एक एक्सएमएल दस्तावेज़ में एक्सएसएल परिवर्तन लागू करने में सक्षम होने के लिए, एक एक्सएमएल शैली पत्रक प्रसंस्करण निर्देश एक्सएमएल में सम्मिलित किया जाता है। इसलिए, उदाहरण के लिए, यदि उपरोक्त उदाहरण2 में शैली पत्रक "उदाहरण2.एक्सएसएल" के रूप में उपलब्ध है, तो निम्नलिखित निर्देश मूल इनकमिंग एक्सएमएल में जोड़ा जा सकता है:[26]

<?xml-stylesheet href="example2.xsl" type="text/xsl" ?>

इस उदाहरण में, टेक्स्ट/एक्सएसएल डब्ल्यू3सी विनिर्देशों के अनुसार तकनीकी रूप से गलत है[26] (जो कहते है कि प्रकार होना चाहिए एप्लीकेशन/एक्सएसएलटी+एक्सएमएल), लेकिन यह एकमात्र मीडिया प्रकार है जो 2009 तक सभी ब्राउज़रों में व्यापक रूप से समर्थित था, और 2021 में इसकी स्थिति अपरिवर्तित थी।

प्रोसेसर कार्यान्वयन

  • अल्टोवा से रैप्टरएक्सएमएल एक एक्सएसएलटी 3.0 प्रोसेसर है जो एक्सएमएलस्पाई विकास टूलकिट में उपलब्ध होते है और एक फ्री-स्टैंडिंग सर्वर कार्यान्वयन के रूप में, एक रेस्ट इंटरफेस का उपयोग करके लागू किया गया था।
  • आईबीएम डेटापॉवर ब्रांड के अनुसार एक विशेष प्रयोजन के हार्डवेयर उपकरण में एम्बेडेड एक्सएसएलटी प्रसंस्करण प्रदान करता है।
  • लिबएक्सएमएल एमआईटी लाइसेंस के अनुसार जारी की गई एक मुफ्त लाइब्रेरी है जिसे व्यावसायिक अनुप्रयोगों में पुन: उपयोग किया जा सकता है। यह लिबएक्सएमएलl पर आधारित है और गति और सुवाह्यता के लिए सी (प्रोग्रामिंग भाषा) में लागू किया गया है। यह एक्सएसएलटी 1.0 और एक्सएसएलटी विस्तार को सहायता करता है।[27]
  • माइक्रोसॉफ्ट दो एक्सएसएलटी प्रोसेसर प्रदान करता है। पहले का प्रोसेसर एमएसएक्सएमएल सीओएम इंटरफेस प्रदान करता है, एमएसएक्सएमएल 4.0 से इसमें कमांड लाइन उपयोगिता एमएसएक्सएसएल.ईएक्सई भी सम्मलित है।[39] .नेट रनटाइम में इसके प्रणाली.एक्सएमएल.एक्सएसएल लाइब्रेरी में एक अलग बिल्ट-इन एक्सएसएलटी प्रोसेसर सम्मलित है।
  • सैक्सन एक एक्सएसएलटी 3.0 और एक्सक्वेरी 3.1 प्रोसेसर होता है जिसमें स्टैंड-अलोन ऑपरेशन और जावा, जावास्क्रिप्ट और .नेट के लिए ओपन-सोर्स और मालिकाना संस्करण होता है। एक अलग उत्पाद सैक्सन-जेएस[40] नोड.जेएस और ब्राउज़र में एक्सएसएलटी 3.0 प्रसंस्करण प्रदान करता है।
  • जालन जावा और सी++ के लिए उपलब्ध अपाचे सॉफ्टवेयर फाउंडेशन का एक ओपन सोर्स एक्सएसएलटी 1.0 प्रोसेसर होता है। ओरेकल से मानक जावा वितरण में जालन प्रोसेसर का एक संस्करण डिफ़ॉल्ट एक्सएसएलटी प्रोसेसर के रूप में सम्मलित होता है।
  • वेब ब्राउज़र: सफारी, क्रोम, फ़ायरफ़ॉक्स, ओपेरा और इंटरनेट एक्सप्लोरर सभी एक्सएसएलटी 1.0 का समर्थन करते है। ब्राउज़र एक्सएमएल फ़ाइलों का ऑन-द-फ्लाई परिवर्तन कर सकते है और ब्राउज़र विंडो में परिवर्तन आउटपुट प्रदर्शित कर सकते है। यह एक्सएमएल दस्तावेज़ में एक्सएसएल एम्बेड करके या एक्सएमएल दस्तावेज़ से एक्सएसएल निर्देशों वाली फ़ाइल को संदर्भित करके किया जाता है। बाद वाला अपने सुरक्षा मॉडल के कारण स्थानीय फ़ाइल प्रणाली से फ़ाइलों पर क्रोम के साथ काम नहीं करता है।[41]
  • एडोब एक्सएसएल इंजन, एक मालिकाना पुस्तकालय है।

प्रदर्शन

अधिकांश प्रारंभिक एक्सएसएलटी प्रोसेसर दुभाषिए होती है। हाल ही में, लक्ष्य के रूप में पोर्टेबल इंटरमीडिएट भाषाओं (जैसे जावा बाइटकोड या .नेट सामान्य मध्यवर्ती भाषा) का उपयोग करते हुए, कोड जेनरेशन तेजी से सामान्य हो रहा है। चूंकि, यहां तक कि व्याख्यात्मक उत्पाद सामान्यतः अलग-अलग विश्लेषण और निष्पादन चरणों को प्रस्तुत करते है, जिससे एक अनुकूलित अभिव्यक्ति ट्री को स्मृति में बनाया जा सकता है और कई परिवर्तन करने के लिए पुन: उपयोग किया जा सकता है। यह ऑनलाइन प्रकाशन अनुप्रयोगों में पर्याप्त प्रदर्शन लाभ देता है, जहां एक ही परिवर्तन प्रति सेकंड कई बार विभिन्न स्रोत दस्तावेजों पर लागू होता है।[42] यह पृथक्करण एक्सएसएलटी प्रोसेसिंग एपीआई (जैसे एक्सएमएल प्रोसेसिंग के लिए जावा एपीआई) के डिज़ाइन में परिलक्षित होता है।

प्रारंभिक एक्सएसएलटी प्रोसेसर बहुत कम अनुकूलन होता है। शैली पत्रक दस्तावेज़ों को दस्तावेज़ वस्तु मॉडल में पढ़ा जाता है और प्रोसेसर सीधे उन पर कार्य करता है। एक्सपाथ इंजन अनुकूलित नहीं होता है। चूँकि, एक्सएसएलटी प्रोसेसर कार्यात्मक प्रोग्रामिंग भाषाओं और डेटाबेस क्वेरी भाषाओं में पाई जाने वाली अनुकूलन विधियों का उपयोग करता है, जैसे कि एक अभिव्यक्ति ट्री की स्थिर पुनर्लेखन (जैसे, गणनाओं को लूप से बाहर ले जाने के लिए), और मध्यवर्ती परिणामों की मेमोरी फ़ुटप्रिंट को कम करने के लिए आलसी पाइपलाइन मूल्यांकन (और "जल्दी बाहर निकलने" की अनुमति देता है जब प्रोसेसर सभी उप-अभिव्यक्तियों के पूर्ण मूल्यांकन के बिना निम्नलिखित-सहोदर ::*[1] अभिव्यक्ति का मूल्यांकन कर सकता है)। कई प्रोसेसर ट्री अभ्यावेदन का भी उपयोग करते है जो सामान्य-उद्देश्य वाले डीओएम कार्यान्वयन की तुलना में अधिक कुशल होते है।[43]

जून 2014 में, डेबी लॉकेट और माइकल के ने एक्सएसएलटी प्रोसेसर के लिए एक्सटी-स्पीडो नामक एक ओपन-सोर्स बेंचमार्किंग फ्रेमवर्क प्रस्तुत किया था।[44]

यह भी देखें

  • एक्सएसएलटी तत्व - कुछ सामान्य रूप से प्रयुक्त एक्सएसएलटी संरचनाओं की एक सूची।
  • एक्सएसएलटी/Muenchian समूहीकरण - एक्सएसएलटी1 और एक्सएसएलटी2+ के बीच बोली का अंतर।
  • विस्तारणीय शैली पत्रक भाषा - भाषाओं का एक परिवार जिसका एक्सएसएलटी एक सदस्य है
  • एक्सक्वेरी# एक्सक्वेरी और एक्सएसएलटी की तुलना
  • एक्सएसएल फॉर्मेटिंग वस्तुओं या एक्सएसएल-एफओ - दस्तावेज़ों के लिए एक एक्सएमएल-आधारित भाषा, सामान्यतः एक्सएसएलटी के साथ स्रोत दस्तावेज़ों को बदलने से उत्पन्न होती है, जिसमें स्वरूपित आउटपुट बनाने के लिए उपयोग की जाने वाली वस्तुएं सम्मलित होती है।
  • पहचान परिवर्तन - फिल्टर चेन के लिए एक प्रारंभिक बिंदु जो एक परिवर्तन पाइपलाइन में एक्सएमएल ट्री से डेटा एलिमेंट्स को जोड़ता या हटाता है
  • अपाचे कोकून - एक्सएसएलटी और अन्य ट्रांसफार्मर के साथ डेटा प्रोसेसिंग के लिए एक जावा (प्रोग्रामिंग भाषा) आधारित ढांचा।

संदर्भ

  1. "परिवर्तन". 2012-09-19.
  2. "XML Output Method". 2012-09-19.
  3. "What is XSLT Used For?". 2018-02-07.
  4. "Introduction". XSL Transformations (XSLT) Version 1.0 W3C Recommendation. W3C. 16 November 1999. Retrieved November 7, 2012.
  5. Cite error: Invalid <ref> tag; no text was provided for refs named Transformation
  6. XSLT Version 2.0 Is Turing-Complete: A Purely Transformation Based Proof
  7. Michael Kay. "What kind of language is XSLT?". IBM. Retrieved July 8, 2016.
  8. "A Proposal for XSL". W3C. Retrieved November 7, 2012.
  9. "XML and Semantic Web W3C Standards Timeline" (PDF). Archived from the original (PDF) on 2013-04-24. Retrieved 2012-02-04.
  10. "XSL Transformations (XSLT)". W3.org. 1999-11-16. Retrieved 2014-07-12.
  11. "XSL Transformations (XSLT) Version 1.1". W3.org. 2001-08-24. Retrieved 2014-07-12.
  12. "XML Path Language (XPath) 2.0 (Second Edition)". W3.org. 2010-12-14. Retrieved 2014-07-12.
  13. "XSL Transformations (XSLT) Version 2.0". W3.org. 2007-01-23. Retrieved 2014-07-12.
  14. "XML and Semantic Web W3C Standards Timeline" (PDF). 2012-02-04. Archived from the original (PDF) on 2013-04-24. Retrieved 2012-02-04.
  15. "What's New in XSLT 3.0?". w3. Retrieved 6 January 2014.
  16. Kay, Michael. "A Streaming XSLT Processor". Balisage: The Markup Conference 2010 Proceedings. Retrieved 15 February 2012.
  17. Flatt, Amelie; Langner, Arne; Leps, Olof (2022), "Phase III: Generating Artifacts from the Model", Model-Driven Development of Akoma Ntoso Application Profiles (in English), Cham: Springer International Publishing, pp. 31–37, doi:10.1007/978-3-031-14132-4_5, ISBN 978-3-031-14131-7, retrieved 2023-01-07
  18. "XSL Transformations (XSLT) Version 2.0 (Second Edition)". www.w3.org. Retrieved 2023-02-07. Example: Multiple Result Documents
  19. "Discover the Wonders of XSLT: XSLT Quirks". Archived from the original on 2011-07-09. Retrieved 2011-02-11. XSLT is a very specialized language with a distinct declarative flavor.
  20. Kay, Michael. "What kind of language is XSLT?". IBM. Retrieved 13 November 2013.
  21. "Saxonica: XSLT and XQuery". www.saxonica.com. Retrieved 2022-06-29.
  22. "XSL Transformations (XSLT) Version 2.0". W3C. Retrieved 19 October 2012.
  23. "Application Media Types". IANA. Retrieved 19 October 2012.
  24. "XSLT Requirements for Viewing XML in a Browser". Microsoft. Retrieved 19 October 2012.
  25. Kay, Michael (2008). XSLT 2.0 and XPath 2.0 Programmer's Reference. Wiley. p. 100. ISBN 978-0-470-19274-0.
  26. 26.0 26.1 "XSL Transformations (XSLT) Version 1.0: W3C Recommendation – Embedding Stylesheets". W3C. 16 November 1999. Retrieved 20 September 2016.
  27. "The XSLT C library for GNOME: libxslt". Retrieved 23 November 2012.
  28. "The XSLT C library for GNOME: The xsltproc tool". Retrieved 23 November 2012.
  29. "xsltproc man page". Retrieved 23 November 2012.
  30. "New package: libxslt". Retrieved 23 November 2012.
  31. "The WebKit Open Source Project - XSLT". Retrieved 2009-10-25.
  32. "The XML C parser and toolkit of Gnome: Python and bindings". Retrieved 23 November 2012.
  33. "XML::LibXSLT - Interface to the GNOME libxslt library". CPAN. Retrieved 23 November 2012.
  34. "libxslt-ruby". Retrieved 23 November 2012.
  35. "libxml". Retrieved 23 November 2012.
  36. "cl-libxml2 High-level wrapper around libxml2 and libxslt libraries".
  37. "टीसीएलएक्सएमएल". Retrieved 21 May 2013.
  38. "libxml++". sourceforge.net. Retrieved 23 November 2012.
  39. "Command Line Transformation Utility (msxsl.exe)". Microsoft. Retrieved 22 October 2012.
  40. "Saxon-JS". Saxonica. Retrieved 6 September 2018.
  41. "Issue 58151: Fails to load xml file on local file system using XMLHttpRequest".
  42. Saxon: Anatomy of an XSLT processor - Article describing implementation & optimization details of a popular XSLT processor.
  43. Lumley, John; Kay, Michael (June 2015). "Improving Pattern Matching Performance in XSLT". XML London 2015: 9–25. doi:10.14337/XMLLondon15.Lumley01. ISBN 978-0-9926471-2-4.
  44. Kay, Michael; Lockett, Debbie (June 2014). "Benchmarking XSLT Performance". XML London 2014: 10–23. doi:10.14337/XMLLondon14.Kay01. ISBN 978-0-9926471-1-7.


अग्रिम पठन

  • एक्सएसएलटी by Doug Tidwell, published by O’Reilly (ISBN 0-596-00053-7)
  • एक्सएसएलटी cookbook by Sal Mangano, published by O’Reilly (ISBN 0-596-00974-7)
  • एक्सएसएलटी 2.0 programmer's Reference by Michael Kay (ISBN 0-764-56909-0)
  • एक्सएसएलटी 2.0 and एक्सपाथ 2.0 programmer's Reference by Michael Kay (ISBN 978-0-470-19274-0)
  • एक्सएसएलटी 2.0 web Development by Dmitry Kirsanov (ISBN 0-13-140635-3)
  • एक्सएसएल companion, 2nd Edition by Neil Bradley, published by Addison-wesley (ISBN 0-201-77083-0)
  • एक्सएसएलटी and एक्सपाथ on the Edge (Unlimited Edition) by Jeni Tennison, published by Hungry Minds Inc, U.S. (ISBN 0-7645-4776-3)
  • एक्सएसएलटी & एक्सपाथ, A Guide to एक्सएमएल Transformations by John Robert Gardner and Zarella Rendon, published by Prentice-Hall (ISBN 0-13-040446-2)
  • एक्सएसएल-FO by Dave Pawson, published by O'Reilly (ISBN 978-0-596-00355-5)


बाहरी संबंध

प्रलेखन
एक्सएसएलटी code libraries