Re: [xsl] top level xsl:param confusion

Subject: Re: [xsl] top level xsl:param confusion
From: Robert Koberg <rob@xxxxxxxxxx>
Date: Thu, 30 Sep 2004 15:09:59 -0700
David Carlisle wrote:

If you pass in an empty string then that is its value, not the default
of false() however an empty string, used in a boolean context will
coerce to false() so in many cases it will come to the same thing.


<xsl:choose> <!--<xsl:when test="boolean($permission)"> or --> <xsl:when test="$permission">


both those are the same thing as test= always has an effective boolean() aroiund its value to coerce whatever there to a boolean.

easiest is probably to make your default value  'defult' or some such
then you can say
test="$permission != 'default'"

Hi and thanks,


I was hoping to get the benefit of a quick boolean test. Perhaps this is a JAXP thing? I would think setting a parameter to an empty string:

transformer.setParameter("permission", "");

would equate to (if the permission param was not sent):

<xsl:param name="permission" select="''"/>
(since that is what I am passing)

To me, this seems like a bug for java processors (at least Saxon and Xalan)

thanks,
-Rob


David

Current Thread