<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:html="http://www.w3.org/1999/xhtml" xmlns:ef="http://example.org/extension/functions" xmlns:xs="http://www.w3.org/2001/XMLSchema" version="2.0"> <xsl:output method="text"/> <xsl:variable name="links" select="/root/@a * /root/@b" as="xs:double"/> <xsl:template name="html-elements" as="element()*"> <xsl:sequence select="//html:*"/> </xsl:template> <xsl:function name="ef:lunchp" as="xs:boolean"> <xsl:param name="time"/> <xsl:call-template name="lunchtime"> <xsl:with-param name="time" select="$time[1]" as="xs:integer"/> </xsl:call-template> <xsl:value-of select="true()"/> </xsl:function> <xsl:template name="lunchtime"> <xsl:param name="time" select="0.0" as="xs:double"/> … </xsl:template> <xsl:template match="/"> <xsl:text>Doesn’t do much, does it?</xsl:text> </xsl:template> </xsl:stylesheet>