Re: [xsl] Custom function in template match predicate

Subject: Re: [xsl] Custom function in template match predicate
From: Florent Georges <lists@xxxxxxxxxxxx>
Date: Tue, 23 Sep 2008 19:40:00 +0200 (CEST)
Ian Stokes-Rees wrote:

  Hi

>   <xsl:function name="my:test">
>     <xsl:param name="fmtcode"/>
>     <xsl:param name="context"/>
>     <xsl:choose>
>       <xsl:when test="substring-after($context/@format,':') =
> $fmtcode and
>
namespace-uri-for-prefix(substring-before($context/@format,':'),$context)
>         = 'http://example.com/schemas/formats' ">
>         <xsl:value-of select="boolean(1)"/>
>       </xsl:when>
>       <xsl:otherwise>
>         <xsl:value-of select="boolean(0)"/>
>       </xsl:otherwise>
>     </xsl:choose>
>   </xsl:function>

  I would use instead:

    <xsl:function name="my:test" as="xs:boolean">
       <xsl:param name="fmtcode" as="xs:string"/>
       <xsl:param name="context" as="element()"/>
       <xsl:sequence select="[ content of your when/@test ]"/>
    </xsl:function>

  Anyway, I would rather use resolve-QName() directly.

  PS: It is a good thing to include any error message you get when
posting.

  Regards,

--drkm

Current Thread