[xsl] behavior of boolean() when applied to an empty variable

Subject: [xsl] behavior of boolean() when applied to an empty variable
From: Wolfhart Totschnig <wolfhart@xxxxxxxxxxxxx>
Date: Mon, 11 Jul 2011 21:31:30 -0500
Hello,

The boolean() function behaves in a way I don't understand when given an empty variable as argument. I was hoping one of you could explain it to me.

Take the following two variables:

<xsl:variable name="empty1"></xsl:variable>

<xsl:variable name="empty2">
   <xsl:if test="false()">
       <xsl:value-of select=" 'some non-empty string' "/>
   </xsl:if>
</xsl:variable>

The value of both variables is the same, i.e. "", an empty string. However, boolean($empty1) returns "false" while boolean($empty2) returns "true". Why? I thought that the boolean function can be used to test whether a string is empty---that is, I thought that it would return "false" in both cases. What am I misunderstanding?

Thanks,
Wolfhart

Current Thread