<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" 
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns:msxsl="urn:schemas-microsoft-com:xslt" 
  xmlns:user="urn:my-scripts" 
  exclude-result-prefixes="user msxsl">
<xsl:output method="html"/>

  <msxsl:script language="C#" implements-prefix="user">
  <![CDATA[
   	
	public String foo(int i){
     	String name = "XSLTUtilsTest, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f43406c515cf67e7";
	 	Type t = System.Reflection.Assembly.Load(name).GetType("XSLTUtilsTest.Util");
	 	Object o = t.InvokeMember("test",
		 System.Reflection.BindingFlags.Public 
		 | System.Reflection.BindingFlags.Static
		 | System.Reflection.BindingFlags.InvokeMethod,
		 null,null, new Object[]{i});
		return o.ToString();
		
     }
     ]]>
  </msxsl:script>

 <xsl:template match="book">
  <xsl:value-of select="user:foo(@bookid)"/><br/>
 </xsl:template>
 

</xsl:stylesheet><!-- Stylus Studio meta-information - (c) 2004-2007. Progress Software Corporation. All rights reserved.
<metaInformation>
<scenarios ><scenario default="yes" name=".NET" userelativepaths="yes" externalpreview="no" url="..\books.xml" htmlbaseurl="" outputurl="" processortype="msxmldotnet2" useresolver="no" profilemode="0" profiledepth="" profilelength="" urlprofilexml="" commandline="" additionalpath="" additionalclasspath="" postprocessortype="none" postprocesscommandline="" postprocessadditionalpath="" postprocessgeneratedext="" validateoutput="no" validator="internal" customvalidator=""/></scenarios><MapperMetaTag><MapperInfo srcSchemaPathIsRelative="yes" srcSchemaInterpretAsXML="no" destSchemaPath="" destSchemaRoot="" destSchemaPathIsRelative="yes" destSchemaInterpretAsXML="no"/><MapperBlockPosition></MapperBlockPosition><TemplateContext></TemplateContext><MapperFilter side="source"></MapperFilter></MapperMetaTag>
</metaInformation>
-->