Я думал, что параметры и переменные должны быть в начале шаблона ... но я могу успешно скомпилировать этот код:
<xsl:template name="WriteOptions">
<xsl:param name="input"/>
<xsl:choose>
<xsl:when test="true()">
</xsl:when>
<xsl:otherwise>
<xsl:param name="head" select="substring-before($input, ',')"/>
<xsl:variable name="tail" select="substring-after($input, ',')"/>
<option value="{$head}"><xsl:value-of select="$head"/></option>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
Так что мне было интересно, в чем подвох