|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] XSLT 2.0 empty string
Consider the following code: <xsl:variable name="foo" select="nothing" as="xs:string?"/> <xsl:choose> <xsl:when test="$foo != ''">A</xsl:when> <xsl:when test="$foo = ''">B</xsl:when> <xsl:when test="not($foo != '')">C</xsl:when> </xsl:choose> When there isn't a <nothing> element, the output is C. That is: $foo != '' is false and $foo = '' also is false Which is strange. If I do "$foo is empty" then Saxon tells me $foo is a string and not a nodeset. After adding the explicit cast, the test passes: string($foo) = '' Which suggests that $foo isn't a string (so which is it?). It almost as if the empty nodeset doesn't get implicitly cast like a 'populated' nodeset, and the as: attribute is ignored. Is there a difference between the way the two are handled? Also, is using "!= ''" a bad way of checking if the variable has content when the variable type is 'xs:string?' (ie optional)? thanks andrew
|
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
|

Cart








