L'élément <msxsl:script> permet d'insérer un script dans une feuille de style.

<msxsl:script 
                      language="nom_langage"
                      implements-prefix="préfixe">
   Script...
</msxsl:script>

Cette commande doit être placée aussitôt après l'élément <xsl:stylesheet>.

Les attributs :
Attribut Description
language="nom_langage" spécifie le nom du langage utilisé dans le script, à défaut la valeur est JScript.
implements-prefix="préfixe" déclare un préfixe d'espace de noms et l'associe au script.

A l'intérieur de l'élément <msxsl:script> peuvent être déclarées des variables et des fonctions qui seront accessibles par l'intermédiaire du préfixe d'espace de noms dans l'ensemble de la feuile de style.

L'élément <xsl:value-of>, à l'intérieur d'une règle de modèle <xsl:template> peut appeler une fonction dans un script.

<xsl:template match="/">
   <xsl:value-of select="préfixe:nom_fonction(arguments)"/>
</xsl:template>

Cet élément peut être contenu dans les instructions <xsl:stylesheet> et <xsl:transform>.

Cet élément ne peut contenir aucunes instructions hormis évidemment un script.

Exemple : [voir]
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
                        xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                        xmlns:msxsl="urn:schemas-microsoft-com:xslt"
                        xmlns:log="namespace">
  <xsl:output method="html" media-type="text/html; charset=ISO-8859-1"/>
  <msxsl:script language="VBScript" implements-prefix="log">
  Function UpperCase(noeud)
      UpperCase = UCase(noeud)
   End Function
  </msxsl:script>
  <xsl:template match="/">
  <html>
      <head>
        <title>La logithèque</title>
      </head>
      <body>
        <table border="1">
        <tr>
          <th>Logiciel</th>
          <th>Editeur</th>
        </tr>
        <xsl:for-each select="/logitheque/categorie/logiciel">
          <tr>
            <td>
              <xsl:value-of select="log:UpperCase(string(nom))"/>
            </td>
            <td>
              <xsl:value-of select="log:UpperCase(string(editeur))"/>
            </td>
          </tr>
        </xsl:for-each>
        </table>
      </body>
  </html>
  </xsl:template>
</xsl:stylesheet>
En savoir plus :
Découvrez cet élément sur le site de Microsoft