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
function:

  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
this.

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!)

Cheers,

Jeni

---
Jeni Tennison
http://www.jenitennison.com/



 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread