testxslt.xsl 2.01 KB
Newer Older
xuebingbing's avatar
xuebingbing committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
<!-- include in the xsl:stylesheet element:
     (a) the version attribute as usual
     (b) the XSLT namespace declaration as usual
     (c) the MSXSL namespace declaration
     (d) a namespace declaration to identify your functions
     (e) the 'extension-element-prefixes' attribute to give the
         namespace prefixes that indicate extension elements
         (i.e. 'msxsl')
     (f) the 'exclude-result-prefixes' attribute to indicate the
         namespaces that aren't supposed to be part of the result
         tree (i.e. 'foo') -->
<xsl:stylesheet version="1.0"
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                xmlns:msxsl="urn:schemas-microsoft-com:xslt"
                xmlns:foo="http://www.pythoncom-test.com/foo"
                xmlns:bar="http://www.pythoncom-test.com/bar"
                extension-element-prefixes="msxsl"
                exclude-result-prefixes="foo bar">

<!-- do whatever output you want - you can use full XSLT functionality
     -->
<xsl:output method="html" />

<!-- define the Javascript functions that you want to include within
     a msxsl:script element.
     - language indicates the scripting language
     - implements-prefix gives the namespace prefix that you declared
       for your function (i.e. foo) -->
<msxsl:script language="javascript"
              implements-prefix="foo">
   function worked() {
      return "The jscript test worked";
    }
</msxsl:script>

<!-- ditto for Python, using the 'bar' namespace
-->
<msxsl:script language="python"
              implements-prefix="bar">
def worked():
  return "The Python test worked"
</msxsl:script>

<xsl:template match="/">
<!-- The output template.  Keep whitespace down as our test matches text exactly -->
<!-- call your functions using the prefix that you've used (i.e.
     foo) anywhere you can normally use an XPath function, but
     make sure it's returning the right kind of object -->
<xsl:value-of select="foo:worked()" />.
<xsl:value-of select="bar:worked()" />

</xsl:template>

</xsl:stylesheet>