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

RE: syntax sugar for call-template

Subject: RE: syntax sugar for call-template
From: "Clark C. Evans" <cce@xxxxxxxxxxxxxx>
Date: Thu, 15 Feb 2001 12:52:18 -0500 (EST)
xslt expressions nested quotes
On Thu, 15 Feb 2001, Michael Kay wrote:
> >   <xf:func arg="val" />  is-equivalent-to <call-template name="func">
> >                                             <with-param name="arg"
> >                                                  select="val" />
> >                                           </call-template>
> 
> In the past I've considered doing this in Saxon.

About 9-12 months ago I had a meta-stylesheet (XSLT->XSLT) 
which converted the former into the latter.

> But I'm undecided whether the attribute value should be an AVT
> (therefore always yielding a string) or an XPath expression (in which
> case any value can be passed, but strings need to be written in
> double-nested quotes, e.g. arg="'London'"). Any views?

I implemented several months back a simple meta-transform
which added this syntax sugar, and a few other syntax
modifications.  From this experience I strongly feel that
it should be an XPath expression:
 
  (a) Not being able to pass node-sets really reduces
      the usefulness of the construct.

  (b) Having to double-nest quotes is standard when ever the
      "select" or "test" is used.  Therefore, I think this
      is expected by an XSLT programmer, if not, it will only
      take a few times before they learn... *evil grin*

Alternatively, this mechanism could work like regular non-xslt
attributes.  Thus, "hello" is a string, but "{hello}" is a node
set of child 'hello' nodes.  I'm not sure I like this.

> (Though actually, I've also held off because I'm reluctant to implement
> non-portable extensions if they provide nothing more than a saving in
> keystrokes ...)

A small amount of sugar at the right spot can really 
make the difference of readability.  

Further, when deciding when to break out code into a seperate 
sub-routine it is primarly a "space" choice.  If I can "inline" 
the code in 2 lines of code, why would I want to put in a 5 line
call-template?  Now, if I can put in 1 line "sugar call",
better modulization results.

It could be written up as a very simple specification and
I'm sure most of the XSLT implemenations would happily 
implement it.  But more importantly, it would be cool if
this made it into XSLT 1.1 ; after all, if we are going to 
add a huge framework to make extension functions work better,
why not add a small amount of syntax sugar to make the
language more "useable".  In the mean time, a simple 
meta-transform will do the trick...

Clark

P.S.  Thank you for considering this and giving 
      it some thought.








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


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.