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

Re: apply-templates abnormality???

Subject: Re: apply-templates abnormality???
From: Dimitre Novatchev <dnovatchev@xxxxxxxxx>
Date: Fri, 10 May 2002 22:28:19 -0700 (PDT)
is empty param.submit
> I am trying to create data in my stylesheet and apply a template as
> if
> the data came from the source document.
> 
> For example:
> 
>         <xsl:variable name="add-apply-button">
>             <xsl:element name="button">
>                 <xsl:element name="file">APPLY_BUTTON</xsl:element>
>                 <xsl:element name="result">APPLY</xsl:element>
>             </xsl:element>
>         </xsl:variable>
>         <xsl:apply-templates select="$add-apply-button">
>             <xsl:with-param
> name="submit-form">AddEditView</xsl:with-param>
>         </xsl:apply-templates>
> 
> I want this to simulate the following xml data:
> 
>         <button>
>             <file>APPLY_BUTTON</file>
>             <result>APPLY</result>
>         </button>
> 
> It works except for one major problem.  The param "submit-form" does
> not
> seem to get set when the "button" template is applied.  The "button"
> template is getting invoked and it is acting as if the data came from
> the source document.  The problem is the param.  It is an empty
> string
> even though I am using with-param and giving it a value.
> 
> I am using Saxon 6.3.  Does this seem like a problem with my XSLT
> code
> or with Saxon?


It is with your code, and obviously Saxon 6.3 implements XSLT 1.1,
otherwise you'd have an error reported on your attempt to use the RTF
(Result Tree Fragment) as a node-set.

The problem is that an RTF, when converted to a node-set is a separate
xml document, so the following code:

>         <xsl:apply-templates select="$add-apply-button">
>             <xsl:with-param
> name="submit-form">AddEditView</xsl:with-param>
>         </xsl:apply-templates>
> 

will apply a template to the root (/) of the document, to which
$add-apply-button evaluates.

Probably your template (if any) matching / does not care for any
parameters, nor it passes them down to any templates applied on /node()

The solution is to replace the above with:

         <xsl:apply-templates select="$add-apply-button/*">
             <xsl:with-param
 name="submit-form">AddEditView</xsl:with-param>
         </xsl:apply-templates>

in case you're using an XSLT 1.0 complient XSLT processor, you'll have
to use vendor:node-set($add-apply-button)/*

Cheers,
Dimitre Novatchev.

 



__________________________________________________
Do You Yahoo!?
LAUNCH - Your Yahoo! Music Experience
http://launch.yahoo.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.