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

RE: Infinite Loop when param empty

Subject: RE: Infinite Loop when param empty
From: "Karl J. Stubsjoen" <karl@xxxxxxxxxxxxxxxxxxxx>
Date: Fri, 23 Jul 2004 07:52:56 -0700
param name loop
>It depends. Why do you want to give the parameter a default value? Do you
>want the default to be different from any value that the user could supply?
>What are you actually trying to achieve?

There parameter is to be interpreted as a node set.  Without some form of a
select this fails.  Typically, I have just used select="/" but now know that
I don't want to do this.

>means "use the value of x supplied by the caller; if the caller didn't
>supply a value, use the root node of the principal source document." It's
>perfectly legitimate to do that, I just find it hard to imagine a situation
>where it would be useful.

I would NEVER want a parameter to be the result of the prinicpal source
document if the user did not supply the parameter.  I would ALWAYS want the
parameter to default to an EMPTY node set if none was supplied.

>Michael Kay

So then, best practice?  Would this be:
<xsl:param name="ENTRY_TEMPLATE" select="/.."/>

Again, without some form of a select, the tranformation will fail.  If I had
just:
<xsl:param name="ENTRY_TEMPLATE" />

..and actually I think all node tests would fail even if a valid xml source
was supplied to the above parameter.  Example:

<xsl:apply-templates select="$ENTRY_TEMPLATE"/>  (would fail??).

Karl

-----Original Message-----
From: Michael Kay [mailto:mhk@xxxxxxxxx]
Sent: Friday, July 23, 2004 6:48 AM
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: RE:  Infinite Loop when param empty


>
> Woah!  That went way over my head Michael.
> So, in the example below It would be more standard to (as
> suggested by Dave
> and Wendell):
>
> <xsl:param name="ENTRY_TEMPLATE" select="/.."/>
>

It depends. Why do you want to give the parameter a default value? Do you
want the default to be different from any value that the user could supply?
What are you actually trying to achieve?

If the parameter is global, then

<xsl:param name="x" select="/"/>

means "use the value of x supplied by the caller; if the caller didn't
supply a value, use the root node of the principal source document." It's
perfectly legitimate to do that, I just find it hard to imagine a situation
where it would be useful.

Michael Kay

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.