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

Re: xsl-call template problem

Subject: Re: xsl-call template problem
From: "Vasu Chakkera" <vasucv@xxxxxxxxxxx>
Date: Wed, 14 Aug 2002 08:58:18 +0000
xsl calling templates
<xsl:template name="test" match='dxl:document[@form="frmTask"]'>

The named template doesnt have a match attribute .. and xsl:call-templates is used to call a named template.. match attribute is significant only when you call xsl:apply-templates


more explaination from Evan Lenz..

The only time the match attribute is ever significant is when
xsl:apply-templates is called (explicitly or from the built-in template
rules). The only time the name attribute is ever significant is when
xsl:call-template is called (only explicitly). The remaining attribute that
you can use is mode, which is only ever significant when there is a match
attribute (and when xsl:apply-templates is called).

In conclusion, named templates and template rules have orthogonal
functionality. No conflicts result from overloading a template for both. In
other words, adding a match attribute to a named template won't break
xsl:call-template, and adding a name attribute to a template rule won't
break xsl:apply-templates.

Hope this helps
Vasu



From: "Christer Nordvik" <christer.nordvik@xxxxxxxxxx>
Reply-To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
To: <xsl-list@xxxxxxxxxxxxxxxxxxxxxx>
Subject:  xsl-call template problem
Date: Wed, 14 Aug 2002 08:31:54 +0200

Hi.

I have a problem with <xsl:call-template>. When I use:

<xsl:template match='dxl:database'><xsl:text/>
 <xsl:element name='Message'> <xsl:text>
</xsl:text>
   <xsl:apply-templates/>
 </xsl:element>
</xsl:template>

<xsl:template name="test" match='dxl:document[@form="frmTask"]'>
 <xsl:element name="ContentProviderInfo">
   <xsl:value-of select='dxl:item[@name="ContentProviderInfo"]/dxl:text'
/>
 </xsl:element>
</xsl:template>

Everything works great, but if I want to use the call template tag like:

<xsl:template match='dxl:database'><xsl:text/>
 <xsl:element name='Message'>
   <xsl:call-template name = "test" />
 </xsl:element>
</xsl:template>

<xsl:template name="test" match='dxl:document[@form="frmTask"]'>
 <xsl:element name="ContentProviderInfo">
   <xsl:value-of select='dxl:item[@name="ContentProviderInfo"]/dxl:text'
/>
 </xsl:element>
</xsl:template>

Then it won't work(doesn't find the data). I know there is some
difference here in context node and nodelist from what I have been
reading, but I can't understand the difference. I haven't seen any
examples of xsl:call-template calling a template that iterates through
the current XML document.

Any help would be greatly appreciated!

Best Regards,
Christer Nordvik


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




_________________________________________________________________
Join the world?s largest e-mail service with MSN Hotmail. http://www.hotmail.com



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.