[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: Nicer way to change context-node than xsl:for-each

Subject: Re: Nicer way to change context-node than xsl:for-each ?
From: Mukul Gandhi <gandhi.mukul@xxxxxxxxx>
Date: Sat, 5 Dec 2009 20:35:57 +0530
Re:  Nicer way to change context-node than xsl:for-each
Thanks, Dimitre for comments.

I was also thinking to propose a simpler syntax, for passing context
to call-template (as follows, please):

<xsl:call-template name="xx" context="nodeReference">
   <!-- template contents -->
</xsl:call-template>

i.e, we can have an attribute on call-template, instead of wrapping it
within something like xsl:context (which looks much verbose).

On Sat, Dec 5, 2009 at 8:06 PM, Dimitre Novatchev <dnovatchev@xxxxxxxxx> wrote:
> Such a feature is not needed, especially in XSLT 2, where the use of
> <xsl:call-template> shouldn't be recommended -- why would anyone
> prefer it to the use of <xsl:function> ?

I think, xsl:function can be only called within XPath 2 expressions,
whereas, call-template can be part of a sequence constructor. IMHO,
both are useful.

> Even in XSLT 1.0 <xsl:call-template> is not necessary -- one can
> always accomplish the same with <xsl:apply-templates>

I largely agree. But I think, xsl:apply-templates is kind of push
processing (and tries to find nodes in the input document, and applies
the match template on them).

But xsl:call-template looks to me, truly a subroutine (but it being
able to inherit the context of caller, makes it different than a true
black box subroutine). It can take certain arguments, and can return a
RTF (in XSLT 1) or a sequence (in 2.0).

btw, I think having following enhancement to 2.0 language:

<xsl:call-template name="xx" inherit-context="no">
   <!-- template contents -->
</xsl:call-template>

(default value of, inherit-context can be "yes")

can make call-template instructions truly black box subroutine calls.
I think, this will be useful to users.

But I agree, that xsl:call-template and xsl:apply-templates can
archive similar objectives, in many cases.



-- 
Regards,
Mukul Gandhi

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.