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

From Vigyanwiki
No edit summary
No edit summary
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> एक्सएसएलटी 1.0 विनिर्देशन के बाद के अपडेट में जेएसओएन और सादा-पाठ परिवर्तन के लिए समर्थन जोड़ा गया था।
'''एक्सएसएलटी''' (विस्तारणीय शैली पत्रक भाषा परिवर्तन) मूल रूप से [[एक्सएमएल]] दस्तावेजों को अन्य एक्सएमएल दस्तावेजों,<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 कार्यान्वयन जावा, .नेट, सी/सी++, पायथन, पीएचपी और नोडजेएस को सहायता करता है। एक एक्सएसएलटी 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>
एक्सएसएलटी 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 डेटा मॉडल|एक्सक्वेरी और एक्सपाथ डेटा मॉडल]] का निर्माण कर सकता है, का उपयोग किया जा सकता है, जैसे [[संबंध का डेटाबेस]] टेबल या [[भौगोलिक सूचना प्रणाली]]।<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|स्नोबोल]] और एडब्ल्यूके जैसी पाठ-आधारित पैटर्न मिलान भाषाओं से प्रभावित है। इसका सबसे प्रत्यक्ष पूर्ववर्ती [[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>

Revision as of 01:47, 27 February 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 के विकास प्रयास का हिस्सा था, एक ऐसी परियोजना जिसने एक्सएसएल-FO और एक्सपाथ का भी उत्पादन किया। एक्सएसएलटी को विकसित करने वाली मानक समिति के कुछ सदस्य, जिनमें संपादक जेम्स क्लार्क भी सम्मलित है, ने पहले डीएसएसएसएल पर काम किया था। एक्सएसएलटी 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 का उपयोग करता है। एक्सएसएलटी 3.0 या तो एक्सपाथ 3.0 या 3.1 के साथ काम करेगा। 1.0 और 2.0 के स्थिति में, एक्सएसएलटी और एक्सपाथ विनिर्देशों को एक ही तिथि पर प्रकाशित किया गया था। 3.0 के साथ, चूंकि, वे अब सिंक्रनाइज़ नहीं थे; एक्सपाथ 3.0 अप्रैल 2014 में एक सिफारिश बन गया, उसके बाद फरवरी 2017 में एक्सपाथ 3.1, एक्सएसएलटी 3.0 जून 2017 में आया।

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

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

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

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

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

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

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

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

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

उदाहरण

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

<?एक्सएमएल संस्करण = 1.0 ?><व्यक्ति>

 <व्यक्ति उपयोगकर्ता नाम = JS1>
   <नाम>जॉन</name>
   <परिवार-नाम>स्मिथ</परिवार-नाम>
 </व्यक्ति>
 <व्यक्ति उपयोगकर्ता नाम = MI1>
   <नाम>मोरका</name>
   <परिवार-नाम>इस्मिन्शियस</परिवार-नाम>
 </व्यक्ति>

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

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

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

 <एक्सएसएल: आउटपुट मेथड = एक्सएमएल इंडेंट = हाँ />
 <एक्सएसएल: साँचा मिलान = /व्यक्तियों >
   <जड़>
     <एक्सएसएल:apply-templates select= person />
   </ जड़>
 </एक्सएसएल: साँचा>
 <एक्सएसएल: टेम्पलेट मैच = व्यक्ति>
   <नाम उपयोगकर्ता नाम = {@उपयोगकर्ता नाम}>
     <एक्सएसएल: चयन का मूल्य = नाम />
   </ नाम>
 </एक्सएसएल: साँचा>

</एक्सएसएल: शैली पत्रक></वाक्यविन्यास हाइलाइट>

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

<वाक्यविन्यास प्रकाश लैंग = एक्सएमएल><?एक्सएमएल संस्करण = 1.0 एन्कोडिंग = UTF-8 ?><जड़>

 <नाम उपयोगकर्ता नाम = JS1> जॉन </ नाम>
 <नाम उपयोगकर्ता नाम = MI1> मोरका </ नाम>

</ जड़></वाक्यविन्यास हाइलाइट>

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

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

<?एक्सएमएल संस्करण = 1.0 एन्कोडिंग = UTF-8 ?>

<एक्सएसएल: शैली पत्रक

 संस्करण = 1.0
 एक्सएमएलns:एक्सएसएल= http://डब्ल्यूडब्ल्यूडब्ल्यू.डब्ल्यू3.org/1999/एक्सएसएल/Transform
 एक्सएमएलns= http://डब्ल्यूडब्ल्यूडब्ल्यू.डब्ल्यू3.org/1999/xएचटीएमएल >
 <एक्सएसएल: आउटपुट विधि = एक्सएमएल इंडेंट = हाँ एन्कोडिंग = UTF-8 />
 <एक्सएसएल: साँचा मिलान = /व्यक्तियों >
   <एचटीएमएल>
     <head> <title>एक्सएमएल का परीक्षण उदाहरण</title> </head>
     <शरीर>
       <उल>
         <एक्सएसएल:apply-templates select= person >
           <एक्सएसएल: सॉर्ट सेलेक्ट = फैमिली-नेम />
         </एक्सएसएल:apply-templates>
       
     </शरीर>
   </एचटीएमएल>
 </एक्सएसएल: साँचा>
 <एक्सएसएल: टेम्पलेट मैच = व्यक्ति>
   <ली>
     <एक्सएसएल: value-of select= family-name /><एक्सएसएल:टेक्स्ट>, </एक्सएसएल:टेक्स्ट><एक्सएसएल:value-of select= name />
   </ली>
 </एक्सएसएल: साँचा>

</एक्सएसएल: शैली पत्रक>

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

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

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

<?एक्सएमएल संस्करण = 1.0 एन्कोडिंग = UTF-8 ?>

<एचटीएमएल एक्सएमएलns= http://डब्ल्यूडब्ल्यूडब्ल्यू.डब्ल्यू3.org/1999/xएचटीएमएल >

 <head> <title>एक्सएमएल का परीक्षण उदाहरण</title> </head>
 <शरीर>
     <उल>
  • इस्मिन्शियस, मोरका
  • स्मिथ, जॉन
  • </शरीर> </एचटीएमएल> </वाक्यविन्यास हाइलाइट> वेब ब्राउजर में प्रस्तुत किए जाने पर यह एक्सएचटीएमएल नीचे आउटपुट उत्पन्न करता है।

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

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

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

    <?एक्सएमएल-स्टाइलशीट href= example2.एक्सएसएल type= टेक्स्ट/एक्सएसएल ?>

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

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

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

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

    प्रदर्शन

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

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

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

    यह भी देखें

    • एक्सएसएलटी तत्व - कुछ सामान्य रूप से प्रयुक्त एक्सएसएलटी संरचनाओं की एक सूची।
    • एक्सएसएलटी/Muenसीhian समूहीकरण - एक्सएसएलटी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 Tidडब्ल्यूell, published by O’Reilly (ISBN 0-596-00053-7)
    • एक्सएसएलटी सीookbook by Sal Mangano, published by O’Reilly (ISBN 0-596-00974-7)
    • एक्सएसएलटी 2.0 प्रोgrammer's Referenसीe by Miसीhael Kay (ISBN 0-764-56909-0)
    • एक्सएसएलटी 2.0 and एक्सपाथ 2.0 प्रोgrammer's Referenसीe by Miसीhael Kay (ISBN 978-0-470-19274-0)
    • एक्सएसएलटी 2.0 डब्ल्यूeb Development by Dmitry Kirsanov (ISBN 0-13-140635-3)
    • एक्सएसएल सीओएमpanion, 2nd Edition by Neil Bradley, published by Addison-डब्ल्यूesley (ISBN 0-201-77083-0)
    • एक्सएसएलटी and एक्सपाथ on the Edge (Unlimited Edition) by Jeni Tennison, published by Hungry Minds Inसी, U.S. (ISBN 0-7645-4776-3)
    • एक्सएसएलटी & एक्सपाथ, A Guide to एक्सएमएल Transformations by John Robert Gardner and Zarella Rendon, published by Prentiसीe-Hall (ISBN 0-13-040446-2)
    • एक्सएसएल-FO by Dave Paडब्ल्यूson, published by O'Reilly (ISBN 978-0-596-00355-5)


    बाहरी संबंध

    Doसीumentation
    एक्सएसएलटी सीode लिबraries