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

From Vigyanwiki
No edit summary
No edit summary
 
(4 intermediate revisions by 4 users not shown)
Line 205: Line 205:


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


प्रारंभिक एक्सएसएलटी प्रोसेसर बहुत कम अनुकूलन होता है। शैली पत्रक दस्तावेज़ों को दस्तावेज़ वस्तु मॉडल में पढ़ा जाता है और प्रोसेसर सीधे उन पर कार्य करता है। एक्सपाथ इंजन अनुकूलित नहीं होता है। चूँकि, एक्सएसएलटी प्रोसेसर कार्यात्मक प्रोग्रामिंग भाषाओं और डेटाबेस क्वेरी भाषाओं में पाई जाने वाली अनुकूलन विधियों का उपयोग करता है, जैसे कि एक अभिव्यक्ति ट्री की स्थिर पुनर्लेखन (जैसे, गणनाओं को लूप से बाहर ले जाने के लिए), और मध्यवर्ती परिणामों की मेमोरी फ़ुटप्रिंट को कम करने के लिए आलसी पाइपलाइन मूल्यांकन (और "जल्दी बाहर निकलने" की अनुमति देता है जब प्रोसेसर सभी उप-अभिव्यक्तियों के पूर्ण मूल्यांकन के बिना <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>
प्रारंभिक एक्सएसएलटी प्रोसेसर बहुत कम अनुकूलन होता है। शैली पत्रक दस्तावेज़ों को दस्तावेज़ वस्तु मॉडल में पढ़ा जाता है और प्रोसेसर सीधे उन पर कार्य करता है। एक्सपाथ इंजन अनुकूलित नहीं होता है। चूँकि, एक्सएसएलटी प्रोसेसर कार्यात्मक प्रोग्रामिंग भाषाओं और डेटाबेस क्वेरी भाषाओं में पाई जाने वाली अनुकूलन विधियों का उपयोग करता है, जैसे कि एक अभिव्यक्ति ट्री की स्थिर पुनर्लेखन (जैसे, गणनाओं को लूप से बाहर ले जाने के लिए), और मध्यवर्ती परिणामों की मेमोरी फ़ुटप्रिंट को कम करने के लिए आलसी पाइपलाइन मूल्यांकन (और "जल्दी बाहर निकलने" की अनुमति देता है जब प्रोसेसर सभी उप-अभिव्यक्तियों के पूर्ण मूल्यांकन के बिना <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>
Line 224: Line 224:


==अग्रिम पठन==
==अग्रिम पठन==
* ''एक्सएसएलटी'' by Doug Tidडब्ल्यूell, published by O’Reilly ({{ISBN|0-596-00053-7}})
* ''एक्सएसएलटी'' by Doug Tidwell, published by O’Reilly ({{ISBN|0-596-00053-7}})
* ''एक्सएसएलटी सीookbook'' 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 प्रोgrammer's Referenसीe'' by [[Michael Howard Kay|Miसीhael 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 एक्सपाथ 2.0 प्रोgrammer's Referenसीe'' by Miसीhael 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 डब्ल्यूeb Development'' by Dmitry Kirsanov ({{ISBN|0-13-140635-3}})
* ''एक्सएसएलटी 2.0 web Development'' by Dmitry Kirsanov ({{ISBN|0-13-140635-3}})
* ''एक्सएसएल सीओएमpanion, 2nd Edition'' by Neil Bradley, published by Addison-डब्ल्यूesley ({{ISBN|0-201-77083-0}})
* ''एक्सएसएल 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}})
* ''एक्सएसएलटी 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}})
* ''एक्सएसएलटी & एक्सपाथ, A Guide to एक्सएमएल Transformations'' by John Robert Gardner and Zarella Rendon, published by Prentice-Hall ({{ISBN|0-13-040446-2}})
Line 237: Line 237:
==बाहरी संबंध==
==बाहरी संबंध==
; प्रलेखन
; प्रलेखन
* [https://www.w3.org/TR/xslt-10/ एक्सएसएलटी 1.0 डब्ल्यू3सी Recommendation]
* [https://www.w3.org/TR/xslt-10/ एक्सएसएलटी 1.0 w3c Recommendation]
* [http://www.w3.org/TR/xslt20/ एक्सएसएलटी 2.0 डब्ल्यू3सी Recommendation]
* [http://www.w3.org/TR/xslt20/ एक्सएसएलटी 2.0 w3c Recommendation]
* [http://www.w3.org/TR/xslt-30/ एक्सएसएलटी 3.0 डब्ल्यू3सी 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)]
Line 246: Line 246:


; एक्सएसएलटी code libraries
; एक्सएसएलटी code libraries
* [http://www.exslt.org/ Eएक्सएसएलटी] is a डब्ल्यूidespread सीओएमmunity initiative to प्रोvide extensions to एक्सएसएलटी.
* [http://www.exslt.org/ Eएक्सएसएलटी] is a widespread community initiative to provide extensions to एक्सएसएलटी.
* [http://fxsl.sf.net/ Fएक्सएसएल] is a लिबrary implementing support for [[Higher-order function|Higher-order funसीtion]]s in एक्सएसएलटी. Fएक्सएसएल is डब्ल्यूritten 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 लिबrary] एक्सएसएलटीsl, प्रोvides the एक्सएसएलटी developer डब्ल्यूith a set of एक्सएसएलटी templates for सीओएमmonly used funसीtions. These are implemented purely in एक्सएसएलटी, that is they do not use any extensions. एक्सएसएलटीsl is a SourसीeForge प्रोjeसीt.
* [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/ Kernoडब्ल्यू] A GUI for सैक्सन that प्रोvides a point and सीliसीk interfaसीe 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 एक्सएमएल डब्ल्यूith एक्सएसएलटी] जावाSसीript लिबrary that transforms एक्सएमएल डब्ल्यूith एक्सएसएलटी in the broडब्ल्यूser.
* [http://johannburkard.de/software/xsltjs/ एक्सएसएलटी.js&nbsp;– Transform एक्सएमएल with एक्सएसएलटी] जावाScript library that transforms एक्सएमएल with एक्सएसएलटी in the browser.


{{Authority control}}
{{Authority control}}
Line 259: Line 259:
[[Category:1998 सॉफ्टवेयर|Xsl Transformations]]
[[Category:1998 सॉफ्टवेयर|Xsl Transformations]]
[[Category:Articles with hatnote templates targeting a nonexistent page|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:Created On 18/02/2023|Xsl Transformations]]
[[Category:Lua-based templates|Xsl Transformations]]
[[Category:Machine Translated Page|Xsl Transformations]]
[[Category:Machine Translated Page|Xsl Transformations]]
[[Category:Pages with reference errors|Xsl Transformations]]
[[Category:Pages with reference errors|Xsl Transformations]]
Line 266: Line 268:
[[Category:Template documentation pages|Short description/doc]]
[[Category:Template documentation pages|Short description/doc]]
[[Category:Templates Vigyan Ready|Xsl Transformations]]
[[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