क्या XSLT 1.0 से 2.0 के उन्नयन में शामिल है?
1 - उन्नयन के संभावित कारण क्या हैं?
यदि आप एक एक्सएसएलटी प्रोग्रामर हैं तो आपको अधिक सुविधाजनक और अभिव्यक्तिपूर्ण एक्सएसएलटी 2.0 भाषा + XPath 2.0 और नया एक्सडीएम (XPath डेटा मॉडल) से काफी फायदा होगा।
आप XSLT 2.0 की शक्ति की दृढ़ और व्यवस्थित समझ प्राप्त करने के लिए यह XSLT 2.0 Pluralsight course देखना चाह सकते हैं।
आपके पास:
मजबूत टाइपिंग और सभी XSD प्रकार उपलब्ध।
अपनी खुद की (स्कीमा) प्रकारों को परिभाषित करने की क्षमता।
XPath 2.0 अनुक्रम प्रकार जिसमें XPath 1.0 में कोई समकक्ष नहीं है (बस गायब है)।
शुद्ध XSLT में फ़ंक्शंस को परिभाषित करने और लिखने की क्षमता - xsl:function
निर्देश।
XPath अभिव्यक्तियों में रेंज चर (for
खंड)।
बहुत बेहतर और अधिक शक्तिशाली स्ट्रिंग प्रसंस्करण - XPath 2.0 इसके tokenize()
, matches()
और replace()
कार्यों में नियमित अभिव्यक्ति का समर्थन करता है। xsl:analyze-string
, xsl:matching-substring
और xsl:non-matching-substring
नई XSLT निर्देश - नियमित अभिव्यक्ति के लिए XSLT 2.0 समर्थन -
बहुत बेहतर और अधिक शक्तिशाली स्ट्रिंग प्रसंस्करण।
अधिक सुविधाजनक, शक्तिशाली और अभिव्यक्तिपूर्ण समूह: xsl:for-each-group
निर्देश।
बहुत सारे नए, बहुत शक्तिशाली XPath 2.0 फ़ंक्शंस - जैसे दिनांक, समय और अवधि पर फ़ंक्शंस, बस कुछ नाम देने के लिए।
नई XPath ऑपरेटरों intersect
, except
, is
, >>
, <<
, some
, every
, instance of
, castable as
, ..., आदि
सामान्य XPath ऑपरेटरों >
, <
, आदिअब (न केवल के रूप में संख्या पर XPath 1.0 में) किसी भी आदेश दिया मान प्रकार पर काम करते हैं।
नया और सुरक्षित मूल्य तुलना ऑपरेटरों: lt
, le
, eq
, gt
, ge
, ne
।
XPath 2.0 to
ऑपरेटर, xsl:for-each select="1 to $N"
ये, और कई अन्य सुधार/नई सुविधाओं में काफी किसी भी XSLT प्रोग्रामर की उत्पादकता, जो XSLT 2.0 विकास एक में समाप्त हो करने की अनुमति देता में वृद्धि के लिए अनुमति देने समय XSLT 1.0 के साथ एक ही मॉड्यूल के विकास के लिए आवश्यक का छोटा सा अंश।
मजबूत टाइपिंग संकलन समय पर कई त्रुटियों को पकड़ा जा सकता है और तुरंत ठीक किया जा सकता है। मेरे लिए यह मजबूत प्रकार- सुरक्षा XSLT 2.0 का उपयोग करने का सबसे बड़ा फायदा है।
2 - अपग्रेड करने के संभावित कारण क्या हैं?
यह अक्सर, संभव उचित और लागत प्रभावी मौजूदा छोड़ने के लिए, विरासत XSLT 1.0 अनुप्रयोगों अछूता और उन्हें XSLT 1.0 के साथ का उपयोग जारी रखना है, जबकि एक ही समय में केवल नई XSLT का उपयोग कर अनुप्रयोगों के विकास 2.0।
आपका प्रबंधन + कोई अन्य गैर-तकनीकी कारण।
खराब शैली में लिखे गए बहुत से विरासत XSLT 1.0 अनुप्रयोगों (उदाहरण के लिए डीओई या एक्सटेंशन फ़ंक्शंस का उपयोग करना जिन्हें अब पुनः लिखा जाना चाहिए और कोड को दोबारा लिखा जाना चाहिए)।
एक्सएसएलटी 2.0 प्रोसेसर उपलब्ध नहीं है।
3 - और अंत में, उन्नयन के लिए कदम क्या हैं?
बदलें version
"2.0"
करने के लिए "1.0"
से xsl:stylesheet
या xsl:transform
तत्व की विशेषता।
किसी भी xxx:node-set()
फ़ंक्शंस को हटाएं।
किसी भी डीओई निकालें।
आश्चर्य के लिए तैयार रहें कि xsl:value-of
अब केवल पहले नहीं, बल्कि सभी अनुक्रम के आइटम आउटपुट करता है।
जितना संभव हो सके नए xsl:sequence
निर्देश का उपयोग करने का प्रयास करें - किसी भी xsl:copy-of
निर्देशों को प्रतिस्थापित करने के लिए इसका उपयोग करें; के बजाय इसका इस्तेमाल xsl:value-of
किसी भी समय जब उत्पादन का प्रकार स्ट्रिंग या पाठ नोड नहीं है।
टेस्ट बड़े पैमाने पर।
जब परीक्षण सत्यापित हो गया है कि कोड अपेक्षित काम करता है, तो रीफैक्टरिंग शुरू करें (यदि आवश्यक समझा जाता है)। किसी भी चर, पैरामीटर, टेम्पलेट्स और कार्यों के लिए प्रकार घोषित करना एक अच्छा विचार है। ऐसा करने से नई, छिपी हुई त्रुटियां प्रकट हो सकती हैं और उन्हें ठीक करने से आपके कोड की गुणवत्ता बढ़ जाती है।
वैकल्पिक रूप से, तय करें कि किस नामित टेम्पलेट्स को xsl:function
के रूप में फिर से लिखना है।
तय करें कि क्या आपको अभी भी पुराने संस्करण में उपयोग किए जाने वाले कुछ एक्सटेंशन फ़ंक्शंस की आवश्यकता है, या आप XSLT की नई, शक्तिशाली क्षमताओं का उपयोग करके आसानी से उन्हें फिर से लिख सकते हैं।
अंतिम टिप्पणी: ऊपर दिए गए चरणों के सभी नहीं जरूरी हैं और एक बंद करो और प्रवास पर शून्य परिणाम बग परीक्षण सफल घोषित कर सकते हैं। नई परियोजनाओं में सभी एक्सएसएलटी 2.0/XPath 2.0 सुविधाओं का उपयोग शुरू करना बहुत साफ है।
स्रोत
2012-02-22 00:52:01
महान सिंहावलोकन, Dimitre (+1) के लिए धन्यवाद। जो मैं बता सकता हूं, उससे किसी को संस्करण 1 या संस्करण 2 प्रोसेसर के बीच चयन करना होगा - उपयुक्त दोनों को दस्तावेज और रूट दस्तावेज नहीं हो सकते हैं (अगर मैं गलत हूं तो कृपया मुझे सही करें)। एएसपी.नेट और jQuery पर महत्वपूर्ण कॉर्पोरेट साइट (कि सभी कामों में फिट होना चाहिए) के साथ, क्या एक एक्सएसएलटी 2.0 प्रोसेसर है जो संभवतः फिट होगा? – Witman
@ विटमैन: आपका स्वागत है। विभिन्न संस्करण प्रोसेसर के लिए रूटिंग करना आसान है और कोई समस्या नहीं होनी चाहिए। एक्सएसएलटी 2.0 * * पीछे की संगतता मोड * में काम कर सकता है * लेकिन यह एक्सएसएलटी 1.0 प्रोसेसर द्वारा प्रोसेसिंग के समान नहीं है। वर्तमान में दो एक्सएसएलटी 2.0 प्रोसेसर हैं जो .NET - Saxon.NET और XmlPrime (XQSharp) के लिए उपयुक्त हैं। सैक्सन में एक एक्सएसएलटी 2.0 प्रोसेसर संस्करण भी है जिसका उपयोग क्लाइंट-साइड - ब्राउज़र के अंदर किया जा सकता है - यह सैक्सन सीई है। मुझे लगता है कि यह आपका निर्णय होना चाहिए - आपको सैक्सन.NET (और सीई) और एक्सएमएलप्रिम दोनों को आजमाएं और फिर एक सूचित विकल्प बनाएं। –
विभिन्न प्रोसेसर और प्रोसेसर सुझावों के लिए रूटिंग पर स्पष्टीकरण के लिए धन्यवाद। (+1) – Witman