﻿<?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:myScript="uri:myScript">
	<xsl:output method="text" />
	<msxsl:script language="C#" implements-prefix="myScript">
	<![CDATA[
		const string xml = @"<root><element id=""element1""/><element id=""element2""/><element id=""element3""/></root>";
		
		public string getNavigatorTypeName(XPathNodeIterator currentNodeSet)
		{
			return currentNodeSet.GetType().FullName;	
		}
		
		public string getNavigatorTypeName2()
		{
			XmlDocument document = new XmlDocument();
			document.LoadXml(xml);
			
			return document.CreateNavigator().Select("element").GetType().FullName;			
		}
		
		public XPathNodeIterator getNodeSet()
		{
			XmlDocument document = new XmlDocument();
			document.LoadXml(xml);
			
			return document.CreateNavigator().Select("/root/element");
		}
	]]>
	</msxsl:script>
	<xsl:template match="/" xml:space="preserve">
		<xsl:value-of select="myScript:getNavigatorTypeName(.)" />
		<xsl:value-of select="myScript:getNavigatorTypeName2()" />
		<xsl:for-each select="myScript:getNodeSet()"><xsl:value-of select="@id" />
		</xsl:for-each>
	</xsl:template>
</xsl:stylesheet>