एक्सएसएलटी में एक विशेष अंतर्निर्मित सुविधा है जो उत्पादन उत्पन्न करने का समर्थन करती है, जो XSLT स्वयं है।
यह <xsl:namespace-alias>
एक्सएसएलटी निर्देश है।
the XSLT 1.0 Spec द्वारा explaiened के रूप में:।
"
<!-- Category: top-level-element -->
<xsl:namespace-alias
stylesheet-prefix = prefix | "#default"
result-prefix = prefix | "#default" />
एक स्टाइलशीट घोषित करने के लिए है कि एक नाम स्थान यूआरआई एक और नाम स्थान यूआरआई के लिए एक उर्फ है xsl:namespace-alias
तत्व उपयोग कर सकते हैं एक शाब्दिक नाम स्थान यूआरआई। को अन्य नामस्थान यूआरआई के लिए उपनाम घोषित किया गया है, तो परिणाम पेड़ में नामस्थान यूआरआई नामस्थान यूआरआई होगा कि शाब्दिक नामस्थान यूआरआई के बजाय शाब्दिक नामस्थान यूआरआई एक उपनाम है। xsl:namespace-alias
तत्व घोषित रेस करें कि stylesheet-prefix
विशेषता द्वारा निर्दिष्ट उपसर्ग के लिए नामस्थान यूआरआई result-prefix
विशेषता द्वारा निर्दिष्ट उपसर्ग के लिए नामस्थान यूआरआई के लिए उपनाम है। इस प्रकार, stylesheet-prefix
विशेषता नामस्थान यूआरआई निर्दिष्ट करती है जो स्टाइलशीट में दिखाई देगी, और result-prefix
विशेषता संबंधित नामस्थान यूआरआई निर्दिष्ट करती है जो परिणाम पेड़ में दिखाई देगी। "
यहाँ एक परिवर्तन है कि एक xsl:stylesheet
युक्त उत्पन्न करता है की एक छोटा सा उदाहरण है एक xsl:variable
, जो वांछित तरह से निर्माण किया है:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xxx="my:dummyNS" exclude-result-prefixes="xxx"
>
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:namespace-alias result-prefix="xsl" stylesheet-prefix="xxx"/>
<xsl:template match="/*">
<xxx:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xxx:variable name="{@name}">
<xsl:value-of select="."/>
</xxx:variable>
</xxx:stylesheet>
</xsl:template>
</xsl:stylesheet>
इस बदलाव निम्नलिखित XML दस्तावेज़ पर लागू किया जाता है:
<v name="myVarName">myValue</v>
वांछित परिणाम का उत्पादन किया है:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:variable name="myVarName">myValue</xsl:variable>
</xsl:stylesheet>
तो अगला कदम है "स्क्रिप्ट" इस गतिशील रूप से उत्पन्न XSLT परिवर्तन में लांच करने के लिए किया जाएगा।
स्रोत
2008-12-11 00:56:17
बस अपना उदाहरण चलाना आपके उत्तर के लिए अलग-अलग परिणाम उत्पन्न करता है। वास्तव में क्या आता है: 'xxx: स्टाइलशीट xmlns: xxx =" http://www.w3.org/1999/XSL/Transform "संस्करण =" 1.0 "> myValue xxx: variable> xxx: स्टाइलशीट> ' –
@blast_hardcheese, नामस्थान उपसर्ग 'xsl: namespace-alias' घोषणा' के 'परिणाम-उपसर्ग' विशेषता में निर्दिष्ट एक जैसा ही गारंटी नहीं है - यह केवल ** नेमस्पेस ** निर्दिष्ट करने के लिए प्रयोग किया जाता है कि शाब्दिक परिणाम तत्वों को आउटपुट में रखा जाना चाहिए। इस प्रकार, वास्तव में उपयोग करने के लिए कौन सा उपसर्ग एक्सएसएलटी-प्रोसेसर निर्भर है। सैक्सन वही उपसर्ग का उपयोग 'परिणाम-उपसर्ग' विशेषता में निर्दिष्ट एक के रूप में करता है। हालांकि, अन्य एक्सएसएलटी प्रोसेसर का उपयोग करने के लिए स्वतंत्रता है जो उनके डेवलपर्स ने तय किया था। –
@blast_hardcheese, आपको शायद पता है कि अगर दो एक्सएमएल फाइलों में केवल कुछ उपसर्ग (नामस्थान यूआरआई नहीं हैं) वे अलग हैं, तो ये दो एक्सएमएल फाइलें बराबर हैं। –