<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
 xmlns:msxsl='urn:schemas-microsoft-com:xslt'
 xmlns:user='http://www.akanda.com/JScript'>
 
<xsl:output indent="no" method="xml" omit-xml-declaration="yes" media-type="text/xml" /> 

<msxsl:script language="C#" implements-prefix="user">
<![CDATA[
   string GetXmlName(string nm)
   {
        return nm.Replace(" ", "_").Replace("#", "NUM_").Replace("%", "PCT_").Replace("&", "AMP_"); //.ToUpper();
   }
]]>
</msxsl:script>


<xsl:template match="*">

<DataletResults>
<Info>
<xsl:for-each select="//DataletResults/Info/node()">
<xsl:element name="{name()}"><xsl:value-of select="." /></xsl:element>
</xsl:for-each>
</Info>

<Datalets>
<xsl:for-each select="//DataletResults/Datalet">
<xsl:variable name="nodeName"><xsl:value-of select="user:GetXmlName(@Name)" /></xsl:variable>
<xsl:variable name="recName"><xsl:value-of select="$nodeName" />_Record</xsl:variable>
<xsl:element name="{$nodeName}">
<xsl:for-each select="Records">
<xsl:element name="{$recName}">
<xsl:attribute name="Index"><xsl:value-of select="Index" /></xsl:attribute>
<xsl:for-each select="node()[name() != 'Index' and @Name != '']">
<xsl:element name="{user:GetXmlName(@Name)}"><xsl:value-of select="@Value" /></xsl:element>
</xsl:for-each>
</xsl:element>
</xsl:for-each>
</xsl:element>
</xsl:for-each>
</Datalets>

<!--
<Datalets>
<xsl:for-each select="//DataletResults/Datalet">
<Datalet>
<xsl:attribute name="Name"><xsl:value-of select="@Name" /></xsl:attribute>
<xsl:for-each select="Records">
<Record>
<xsl:attribute name="Index"><xsl:value-of select="Index" /></xsl:attribute>
<xsl:for-each select="node()[name() != 'Index' and @Name != '']">
<xsl:element name="{user:GetXmlName(@Name)}"><xsl:value-of select="@Value" /></xsl:element>
</xsl:for-each>
</Record>
</xsl:for-each>
</Datalet>
</xsl:for-each>
</Datalets>
-->

<!--
<Services>
<xsl:for-each select="//DataletResults/Services/Services">
<Service>
<xsl:copy-of select="@* | node()" />
</Service>
</xsl:for-each>
</Services>
-->

<Services>
<xsl:for-each select="//DataletResults/Services/Services">
<xsl:element name="{@Type}">
<xsl:attribute name="ID"><xsl:value-of select="@ID"></xsl:value-of></xsl:attribute>
<URL><xsl:value-of select="@URL" /></URL>
</xsl:element>
</xsl:for-each>
</Services>


</DataletResults>



</xsl:template>
</xsl:stylesheet>

