Strict XSL Resin, of course, also supports strict XSL syntax. Strict XSL is more verbose and less readable, but has the advantage of being more standard. The following stylesheet is exactly equivalent to the previous one but uses strict XSL syntax. <xsl:stylesheet> <!-- make sure '<' is not printed as '<' --> <xsl:output disable-output-escaping='true'/> <!-- copy input to output --> <xsl:template match='*|@*'> <xsl:copy> <xsl:apply-templates select='node()|@*'/> </xsl:copy> </xsl:template> <!-- rewrite <a href> --> <xsl:template match='a[@href]'> <a href='<%= response.encodeURL("{@href}") %>'> <xsl:apply-templates select='node()|@*[name(.)!="href"]'/> </a> </xsl:template> </xsl:stylesheet>