Re: [xsl] RE: syntax sugar for call-template

Subject: Re: [xsl] RE: syntax sugar for call-template
From: Jeni Tennison <mail@xxxxxxxxxxxxxxxx>
Date: Fri, 16 Feb 2001 09:26:02 +0000
David Carlisle wrote:
> Howver This is still an element and so still not usable in XPath
> expressions, so I'd rather have
> ... something...
> and then have 
> select="my:func(xpath)"
>  essentially doing something equivalent to
> <xsl:variable name="x"><xf:func one="xpath" /></xsl:variable> ...
> select="$x"

Couldn't agree more strongly.  Thinking about Uche's comments on
run-time dynamism and introspection yesterday (I don't know what that
means but it sure sounds good) another option would be single new XSLT

  call-template('my:func', 'one', xpath,
                           'two', $rtf)

I don't know whether this would be more or less acceptable than a
means of defining XSLT user extension functions?  The one big
limitation is that you wouldn't be able to return node sets (aside
from those constructed as an RTF) so there would be limitations on

Even without a general call-template() function, if we're going for
XSLT user extension functions there's still the issue of how the
parameters are passed.  In saxon:function, they're passed by position.
Another alternative would be, as above, if they were passed by name
using something like:

  my:func('one', xpath, 'two', $rtf)

rather than:

  my:func(xpath, $rtf)

I like being able to set parameters by name.  It also might lead to
interesting situations if you dynamically alter the names of the
parameters (they're just strings, after all) [if we had a
call-template() function then you could dynamically alter the name of
the template too!)



Jeni Tennison

 XSL-List info and archive:

Current Thread