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

syntax sugar for call-template

Subject: syntax sugar for call-template
From: "Clark C. Evans" <cce@xxxxxxxxxxxxxx>
Date: Wed, 14 Feb 2001 17:58:18 -0500 (EST)
call by name c
> > | Making a template and calling a template are just too verbose.  
> > | This seperate issue can be solved by an additional namespace "xf"
> > | with the following behavior:
> > | 
> > | Anywhere, except as a child of "xsl:template",
> > | 
> > |   <xf:func x="y" />    is equivalent to   <xsl:call-template name="func">
> > |                                             <xsl:with-param name="x"
> > |                                                select="y" />
> > |                                           </xsl:call-template>
> > | 
> > | and when a child of xsl:template,
> > | 
> > |   <xf:func x="y">      is equivalent to   <xsl:template name="func">
> > |     ...                                     <xsl:param name="x"
> > |   </xf:func>                                    select="y" />
> > |                                             ...
> > |                                           </xsl:template>
> > 
> > This approach would appear to have problems
> > passing literal result-tree-fragment arguments
> > to templates...
> >   
> >    <xsl:call-template name="foo">
> >       <xsl:with-param name="content">
> >         <ul>
> >           <li>One</li>
> >           <li>Two</li>
> >         </ul>
> >       </xsl:with-param>
> >     </xsl:call-template>
> > 
> > Your example would imply this would be:
> > 
> >    <xf:foo content="<ul><li>...</li></ul>"/>
> 
> First, this is not a *replacement* for the current syntax,
> it is a short-hand that makes template calling and definition
> more bareable for simple, "string" arguments.
> 
> Second, one would obviously have to do the appropriate escaping
> when passing result-tree fragments.  I'm not saying this is 
> pretty, however, I'm proposing a short-hand, not a replacement.
> <xf:foo content="&lt;ul&gt;&lt;li&gt;...&lt;/li&gt;&lt;/ul&gt" />

Sorry that I implied that passing a result-tree fragment
using this mechanism would be possible (not that you can
do much with result-tree fragments besides treating them
as strings).  

But this isn't the point.  The point is that the
template calling mechanism is too verbose.  It can
be shortened up significantly in a backward-compatible
manner using the abbreviation described.

Like I said:

  <xf:func arg="val" />   is-equivalent-to   <call-template name="func">
                                               <with-param name="arg"
                                                 select="val" />
                                            </call-template>

Note that I did NOT say

  <xf:func arg="val" />   is-equivalent-to   <call-template name="func">
                                               <with-param name="arg">
                                                  val
                                               </with-param>
                                             </call-template>
;) Clark




 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.