Appears at the top level of the style sheet and contains script blocks that define global variables and functions for script extensions.
<msxsl:script language = "language-name" implements-prefix = "prefix of user's namespace"> </msxsl:script>
| Number of occurrences | Unlimited |
| Parent elements | xsl:stylesheet, xsl:transform |
| Child elements | (No child elements) |
Belongs to the namespace urn:schemas-microsoft-com:xslt. You can declare variables and define functions within the <msxsl:script> element. This can appear within the <xsl:stylesheet> element. A script block thus nested is treated as a global script block.
You can also instantiate COM objects in the <msxsl:script> element. However, a user's security settings may prevent your script from instantiating a client-side object.
This example creates a script block with a namepace prefix of "user" that contains a function called "xml" that takes a node-list as an argument. Later, this function is called from the select attribute of <xsl:value-of>.
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt"
xmlns:user="http://mycompany.com/mynamespace"
version="1.0">
<msxsl:script language="JScript" implements-prefix="user">
function xml(nodelist) {
return nodelist.nextNode().xml;
}
</msxsl:script>
<xsl:template match="/">
<xsl:value-of select="user:xml(.)"/>
</xsl:template>
</xsl:stylesheet>