Existen numerosas librerías de plantillas y funciones para desarrollo de transformaciones XSLT que en muchas ocasiones pueden resultar de utilidad ya que complementan carencias del propio lenguaje en relación a procesamiento de cadenas, tipos de fecha y hora, proceso de URLs, etc. Algunas de las que podemos encontrar en la red son:
Todas ellas (y otras no referenciadas) incorporan importantes complementos a XSLT que nos pueden ser de utilidad y únicamente hace falta referenciarlas en nuestros XSLT. Se debe tener en cuenta que algunas de ellas requerirán XSLT 2.0, con lo que nuestro motor de transformación deberá cumplir con esta versión. Lastimosamente la versión 3.0 de SharePoint Services (incluida la versión de servidor) no cumple con esta versión.
<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">
<msxsl:script language="C#" implements-prefix="user">
<![CDATA[
public double circumference(double radius){
double pi = 3.14;
double circ = pi*radius*2;
return circ;
}
]]>
</msxsl:script>
<xsl:template match="data">
<circles>
<xsl:for-each select="circle">
<circle>
<xsl:copy-of select="node()"/>
<circumference>
<xsl:value-of select="user:circumference(radius)"/>
</circumference>
</circle>
</xsl:for-each>
</circles>
</xsl:template>
</xsl:stylesheet>
Si trabajamos con .NET tenemos la posibilidad además añadir extensiones en lenguaje manejado mediante <msxsl:script>
Más información sobre extensiones XSLT en .NET en
http://msdn.microsoft.com/es-es/library/533texsx(VS.90).aspx