XSLT को शायद ही कभी वेब पर उपयोग किया जाता है? [बन्द है]


13

XSLT एक परिपक्व, व्यापक रूप से स्वीकृत मानक है।

इसका उपयोग ब्राउज़रों में किया जा सकता है (यहां तक ​​कि पुराने IE में) और सर्वर साइड पर (nginx में XSLT मॉड्यूल है, जिसका उपयोग प्रोग्रामिंग भाषाओं से किया जा सकता है, निश्चित रूप से)। इसके कार्यान्वयन संकलित हैं और इसलिए, पायथन या जेएस की तुलना में बहुत तेज होना चाहिए। JS कार्यान्वयन Saxon JS का उपयोग कम से कम, कमबैक के रूप में किया जा सकता है। जिंजा, एंगुलर, रूबी स्लिम, एएसपी और पीएचपी टेम्प्लेटिंग भी करीब नहीं हैं।

एक आईडीई में एक XSL टेम्पलेट आसानी से मान्य किया जा सकता है। कितने आईडीई जिनजा या कोणीय के साथ मदद कर सकते हैं?

ऐसा लगता है कि यह यूआई और एक्सएसएलटी के साथ डेटा विघटित करने के लिए एक आदर्श विचार है।

निश्चित रूप से, कार्यान्वयन कुछ कोने के मामलों में अलग-अलग परिणाम दे सकता है, लेकिन यह केवल क्लाइंट साइड पर टेंपलेटिंग के साथ एक समस्या है। और यह HTML, सीएसएस और बाकी सब कुछ है जो क्लाइंट की तरफ से किया जाता है।

तो, क्यों नहीं XSLT?


4
JSON XML की तुलना में आसान है। मैं आपको बच्चा नहीं देता, कल रात मैंने डेवलपर्स को यह कहते हुए सुना कि वे कितने आभारी थे कि उन्हें कभी भी एक्सएसएलटी का इस्तेमाल नहीं करना पड़ा। देखें: stackoverflow.com/questions/4862310/json-and-xml-comparison
दान विल्सन

6
क्या आपने कभी इसके साथ कुछ निरर्थक करने की कोशिश की है?
प्लाज्माएचएच

9
क्या 'क्योंकि यह मान्य उत्तर का उपयोग करने के लिए पीड़ा है ..?
thisextendsthat

2
@thisextendsthat: नहीं, क्योंकि जावास्क्रिप्ट और सीएसएस भी उपयोग करने के लिए तड़पते थे, लेकिन फिर भी व्यापक रूप से उपयोग किए जाते थे।
जैक्सबी

4
@JacquesB JS और CSS अभी भी उपयोग के लिए तड़प रहे हैं।
एंडी

जवाबों:


40

XSLT वास्तव में आधुनिक इंटरैक्टिव वेब में एक उपयोगी भूमिका नहीं है। XSLT का उद्देश्य एक XML भाषा से दूसरे में बदलना है - लेकिन आपको वास्तव में कभी भी ऐसा करने की आवश्यकता नहीं है। एक तकनीक कितनी शक्तिशाली, तेज और अच्छी तरह से समर्थित है यदि आप समस्या को हल करने के लिए तैयार नहीं है, तो यह अप्रासंगिक है।

XSLT के उपयोग के मामले दूर हो गए हैं, इसके कई कारण हैं:

  • HTML जीत गया है। XSLT HTML में कुछ अर्थ मार्कअप प्रारूप में "समृद्ध पाठ" सामग्री को बदलने के लिए उपयोगी माना जाता था। लेकिन HTML अपने आप में एक पूरी तरह से ठीक स्वरूप है, इसलिए केवल पहली बार में सामग्री के लिए उपयोग क्यों न करें और परिवर्तन को छोड़ दें?
  • सीएसएस बहुत अधिक शक्तिशाली हो गया है। XSLT का एक वादा यह था कि आप स्रोत मार्कअप को साफ और अर्थपूर्ण रख सकते हैं और फिर इसे "प्रेजेंटेशनल एचटीएमएल" में बदल सकते हैं जो क्रॉस ब्राउजर पर काम करता है और जहां आप तत्वों और इतने पर पुनर्व्यवस्थित कर सकते हैं। लेकिन इन दिनों आपको वास्तव में प्रेजेंटेशनल एचटीएमएल की आवश्यकता नहीं है, आप सिमेंटिक एचटीएमएल का उपयोग कर सकते हैं और सीएसएस आवश्यक स्टाइल और लेआउट का प्रदर्शन कर सकते हैं।
  • XML डेटा के लिए सर्वव्यापी प्रारूप नहीं बन गया है। डेटाबेस से SQL डेटा लाते समय इसे सीधे XML में बदलना और फिर XSLT के माध्यम से बदलने के बजाय इसे सीधे एक टेम्पलेट में मर्ज करना बहुत सरल है। और JSON क्लाइंट पक्ष पर संरचित डेटा के लिए सभी लेकिन XML को बदल दिया है।
  • XSLT को एक बार में एक पूरे दस्तावेज़ को बदलने के लिए डिज़ाइन किया गया है। लेकिन आधुनिक इंटरैक्टिव वेब पेजों में, डेटा के छोटे स्निपेट को हर समय डाउनलोड किया जाता है और पेज में विलय कर दिया जाता है।
  • डेटा सिर्फ इतना जटिल नहीं है। उपयोग के मामलों के बहुमत के लिए, प्लेसहोल्डर और रिपीटर्स के साथ सरल टेम्पलेट प्रारूप कार्य ठीक हल करते हैं। XSLT अधिक शक्तिशाली है, लेकिन आपको शायद ही कभी उस अतिरिक्त शक्ति की आवश्यकता होती है, और इसकी जटिलता और बदसूरती में एक महत्वपूर्ण लागत होती है।

XSLT प्रकाशन से बाहर हो गया, जहाँ आपके पास एक संरचित स्रोत प्रारूप से प्रिंट, पीडीएफ और स्थिर वेब पेज जैसे कई प्रकाशन प्रारूप में एक-तरफ़ा प्रक्रिया हो सकती है। अधिकांश वेब साइटें इस उपयोग के मामले में फिट नहीं होती हैं।


बहुत जानकारीपूर्ण उत्तर (+1)।
जियोर्जियो

2
मुझे नहीं पता कि मेरा अनुभव अन्य उपयोगकर्ताओं की तुलना में समान है, लेकिन XSLT के "विक्रय बिंदु" में से एक के रूप में मुझे समझाया गया बैंडविड्थ कम हो गया था: यदि आपके पास एक बड़ा, नियमित पृष्ठ है तो आप न्यूनतम XML ( <chapter><title><par>...) और XSLT भेजें साथ यह "विस्तार" होगा div, table, trके रूप में इसके अलावा के साथ, जरूरत यह संचित किया जा सकता है। तो (फिर, मुझे नहीं पता कि इस "लाभ" को कितना व्यापक रूप से समझाया गया था) बेहतर बैंडविड्थ ने इसे भी नुकसान पहुंचाया होगा (और यह तथ्य कि ज्यादातर HTML पृष्ठ काफी छोटे हैं)।
18-29 पर SJuan76

@ एसजेयूएन 76: यह सिमेंटिक मार्कअप को वर्बोस प्रेजेंटेशनल एचटीएमएल में बदलने का विचार है जो लेआउट के लिए तालिकाओं का उपयोग करता है। सौभाग्य से अब लेआउट के लिए तालिकाओं का उपयोग करना आवश्यक नहीं है ताकि उपयोग का मामला मूट हो।
जैकब

1
@JacquesB मैंने उस पृष्ठ के लिए उस जोड़े का उपयोग किया: programaths.be/job/job.xml और इसने पूर्ण बनाया। XML का उपयोग पृष्ठ को प्रदर्शित करने और उत्पन्न प्रश्नावली के उत्तरों की जांच के लिए किया जाता है। यह तालिकाओं में प्रारूपण के बारे में नहीं है, लेकिन XML मुझे एक अच्छा अमूर्त प्रस्ताव देता है। बेशक, मुझे लोगों को धोखा देने की परवाह नहीं है। लेकिन यह दर्शाता है कि आधुनिक समय में भी, यह बहुत उपयोगी हो सकता है!
प्रोग्राम

9

निर्भर करता है कि आप "वेब में" से क्या मतलब है।

XSLT बहुत व्यापक रूप से उपयोग किया जाता है। जहाँ तक हम StackOverflow प्रश्नों की संख्या जैसे मेट्रिक्स से जज कर सकते हैं, यह शीर्ष 30 प्रोग्रामिंग भाषाओं में है, जो संभवतः SQL के बाद शीर्ष डेटा-मॉडल-विशिष्ट प्रोग्रामिंग भाषा बनाता है।

लेकिन XSLT का व्यापक रूप से क्लाइंट-साइड, अर्थात ब्राउज़र में उपयोग नहीं किया जाता है। यह आमतौर पर HTTP अनुरोधों के जवाब में मांग पर सामग्री देने के लिए या तो सर्वर-साइड का उपयोग किया जाता है, या यह एक प्रकाशन वर्कफ़्लो के हिस्से के रूप में बैच मोड में उपयोग किया जाता है। इसका उपयोग, निश्चित रूप से, कई अनुप्रयोगों में किया जाता है जो वेब के साथ बहुत कम होते हैं, जैसे प्रिंट प्रकाशन में।

XSLT को बड़े पैमाने पर ब्राउज़र में उपयोग नहीं किए जाने के कई कारण हैं। मुख्य कारण यह है कि अच्छा अनुरूप XSLT समर्थन ब्राउज़र विक्रेताओं से बहुत धीमी गति से आ रहा था; कोई भी इसे तब तक उपयोग नहीं करना चाहता था जब तक कि यह हर ब्राउज़र पर उपलब्ध न हो, और जब तक यह हर ब्राउज़र पर उपलब्ध नहीं हो जाता, तब तक लोग ब्राउज़र में जो काम करना चाहते थे, वह आगे बढ़ गया (याद रखें "वेब 2.0"?) और XSLT कार्यान्वयन? ब्राउज़र में आपने AJAX का उपयोग करके इंटरेक्टिव एप्लिकेशन या डेटा लाने में मदद नहीं की।

सैक्सोनिका (अस्वीकरण, यह मेरा उत्पाद है) ने सैक्सन-जेएस के साथ इन अंतरालों को प्लग करने का प्रयास किया है, लेकिन उत्पाद पार्टी के लिए एक लेटकॉमर है, और क्लाइंट-साइड वेब विकास बहुत फैशन-संचालित है, इसलिए यह सिर्फ इतना ही नहीं है उत्पाद जो सभी तकनीकी बक्से को टिक करता है। फैशन संचालित होने का एक हिस्सा यह है कि अधिकांश डेटा-उन्मुख साइटें (दस्तावेज़-उन्मुख से अलग) XML के बजाय JSON की ओर बढ़ी हैं, बड़े पैमाने पर क्योंकि JSON जावास्क्रिप्ट से हेरफेर करना बहुत आसान है।

दूसरा मुद्दा यह है कि XSLT एक लव-इट-या-हेट-इट भाषा है। इसकी घोषणा, नियम-आधारित, कार्यात्मक रूप से उन्मुख प्रतिमान इसकी उच्च-स्तरीय प्रकृति के कारण कई लोगों से अपील करता है, लेकिन उन लोगों के लिए इसे बंद कर दिया जा सकता है जिनकी प्रोग्रामिंग का एकमात्र अनुभव अनिवार्य कोड लिखना है जो कंप्यूटर को बताता है कि वास्तव में क्या करना है और क्या करना है किस क्रम में।


3

मैं इस सवाल का जवाब देने और मुख्य रूप से राय-आधारित के रूप में बंद करने के बीच पलटा हूं। तो, यहाँ मेरा फ्लिप है:

संक्षेप में, क्योंकि XML एक भद्दा प्रोग्रामिंग भाषा बनाता है। मुझे लगता है कि XSLT के शब्दार्थ के साथ कुछ ज्यादा ही बेहतर वाक्य रचना एक अलग बात होगी। उदाहरण के लिए, कुछ वास्तव में शांत लिस्प-आधारित XML- परिवर्तन भाषाएँ हैं।

XSLT यह तय नहीं कर सकता है कि यह एक पेड़-पुनर्लेखन भाषा, एक कार्यात्मक भाषा या एक प्रक्रियात्मक भाषा बनना चाहता है या नहीं। इसमें उन सभी की विशेषताएं हैं, लेकिन यह वास्तव में उनमें से किसी में भी अच्छा नहीं है। किसी भी तीन पहलुओं के लिए, वहाँ बेहतर भाषाएं हैं।


XML सिंटेक्स वास्तव में वर्बोज़ दिख सकता है। लेकिन, कुछ अन्य भाषाएं क्या हैं जो हर जगह समर्थित हैं?
जॉर्ज सोवतोव

XSLT एक उत्कृष्ट कार्यात्मक भाषा IMO है। जहां यह नीचे गिरता है, वहां यह देखने के लिए w / परिवर्तन तर्क को मिलाता है।
रबरडक

4
@GeorgeSoverov हर जगह समर्थित होना क्यों महत्वपूर्ण है? इसे केवल आपके सर्वर पर समर्थित होना चाहिए।
एबेन स्कोव पेडर्सन

1
मुझे लगता है कि किसी भाषा का बदसूरत होना अप्रासंगिक है अगर वह प्रासंगिक उपयोग के मामले में काम करता है। बस जावास्क्रिप्ट की सफलता के गवाह हैं। XSLT के साथ समस्या यह है कि मामला अभी नहीं है।
जैक्सबी

1
ठीक है, आपने निश्चित रूप से यह प्रदर्शित किया है कि यह एक ऐसा प्रश्न है जो राय-आधारित उत्तरों को आकर्षित करता है ...
माइकल केय

0

क्योंकि 99.9% मामलों के लिए XML स्वयं अप्रचलित पीछे की ओर-संगतता की तरह दिखता है।

एकमात्र उपयोग का मामला जिसके लिए XML में तुरंत बेहतर प्रतिस्थापन नहीं है, docx या odf जैसी चीजें हैं, और यह संभव है कि SGML बेहतर होता *। यही है, हमारे पास अविश्वसनीय रूप से समृद्ध दस्तावेज़ संरचना है, जिसमें सभी प्रकार की चीजों को एक दूसरे के अंदर घोंसला बनाया जाता है और बड़े परिवर्तन लागू किए जाते हैं ताकि यह स्क्रीन और प्रिंटर पर सही दिखाई दे।

लगभग हर समय, XML का उपयोग संरचित डेटा को पास करने के लिए किया जाता है, और ऐसा प्रतीत होता है कि XSLT को दस्तावेज़ डेटा में संरचित दस्तावेज़ डेटा को बदलने के लिए डिज़ाइन किया गया है। वह उपयोग मामला मर रहा है। JSON संरचित डेटा के लिए XML से सीधे बेहतर है। ** मार्केड और YAML दोनों हल्के से स्वरूपित डेटा से बेहतर हैं। एक्सएमएल और जेवाक्रिप्ट में एक्सएमएल का शुरुआती लेग-अप बिल्ट-इन पार्सर्स था। JSON उन अवरोधों को तोड़कर एक अंतर्निहित पार्सर का उपयोग करता है, जहां JSON स्रोत पर भरोसा किया जाता है (जो कि युवा होने पर उनमें से अधिकांश था)।

और दुनिया बदल जाती है। अंतर्निहित पुस्तकालय लाभ अब एक तुच्छ लाभ है। एक्सएचटीएमएल को एक सिरे से खारिज कर दिया गया था और इसका प्रतिस्थापन इसे विरासत से नहीं बल्कि अपने पूर्ववर्ती से मिला था।

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

* उन्होंने कॉलेज में पढ़ाया कि SGML कभी लागू नहीं किया गया था। उन्होंने झूठ बोला।

** मैंने JSON में खराब संख्या प्रारूपों के बारे में शिकायतें सुनी हैं। दूसरी ओर XML का कोई प्रारूप नहीं है, इसलिए स्ट्रिंग में सभी डेटा प्रकारों को भरना अभी भी XML के खिलाफ जीत है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.