|
[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
[Recent Entries]
[Reply To This Message]
Re: top level xsl:param confusion
Subject: Re: top level xsl:param confusion
From: xptm <xptm@xxxxxxx>
Date: Thu, 30 Sep 2004 22:31:13 +0100
|
A empty string is evaluated to false when tested as a boolean. Use
something like string-length($permission)=0.
Robert Koberg wrote:
Hi,
I have a top level param like so:
<xsl:param name="permission" select="false()"/>
Main Question:
Is the above top level xsl:param considered false even if it was
passed an empty string? I would expect it to be false only if the
param was *not* passed.
More info:
I send the param down to the transformation if a user has access to
the filesystem otherwise it is not sent. And if they have access I
send the path that they are restricted to as the value. Some example
values are:
"" -- full project access
"foo" -- access restricted to the 'foo' folder
"foo/bar" -- access restricted to the 'foo/bar' folder
If they have no restriction I want the param value to be 'false()'
The problem (or my misunderstanding) is when I pass down the empty
string value - "". So the transformation sees there is a
/xsl:stylesheet/xsl:param[@name='permission'] - so it should not
evaluate to false(), right? However, it does in both Xalan and Saxon
(the only two I tried). I don't see anything in the spec that
addresses this.
For example, the following chooses the otherwise when the param is
sent to the transformation as an empty string.
<xsl:choose>
<!--<xsl:when test="boolean($permission)"> or -->
<xsl:when test="$permission">
<!-- allow access -->
</xsl:when>
<xsl:otherwise>
<!-- no access -->
</xsl:otherwise>
</xsl:choose>
thanks for any clarification,
-Rob

|
PURCHASE STYLUS STUDIO ONLINE TODAY!
Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!
Download The World's Best XML IDE!
Accelerate XML development with our award-winning XML IDE - Download a free trial today!
Subscribe in XML format
| RSS 2.0 |
|
| Atom 0.3 |
|
|