|
Subject: RE: [xsl] XPath 2.0: Problems with the two boolean constants true and false From: "Michael Kay" <mhk@xxxxxxxxx> Date: Mon, 6 Oct 2003 00:32:28 +0100 |
>
> I see two problems with the boolean constants true and false:
>
> 1. They cannot be used in an XPath expression -- cannot be
> distinguished from child::true and child::false
There are no constants "true" and "false". As in XPath 1.0, the truth
values are represented by the function calls true() and false(). No
change here from 1.0.
>
> 2. boolean('false') is true. This is especially confusing
> and may be the source of many programmers' headaches.
Again, no change here from 1.0. I haven't seen this cause much problem
in practice, though the introduction of xs:boolean alongside
[fn:]boolean may be confusing. xs:boolean() uses the schema rules: '0'
and 'false' give false, '1' and 'true' give true, any other string is an
error.
>
> Because of these I chose in my code to use functions
> returning xs:integer (0 and 1) and for templates to write
> code like the following:
>
> <xsl:template name="And" match="*[namespace-uri()='allTrue-And']">
> <xsl:param name="arg1"/>
> <xsl:param name="arg2"/>
> <xsl:value-of select="number(number($arg1) and
> number($arg2))"/>
> </xsl:template>
>
> Am I wrong? Is there a way to overcome the above problems?
>
It seems odd to me to use numbers instead of booleans because you don't
like the string-to-boolean conversions. If you don't like the
string-to-boolean conversions just don't use them; you can still use
booleans!
Michael Kay
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| [xsl] XPath 2.0: Problems with the , Dimitre Novatchev | Thread | RE: [xsl] XPath 2.0: Problems with , Dimitre Novatchev |
| [xsl] XPath 2.0: Problems with the , Dimitre Novatchev | Date | RE: [xsl] Re: XPath/XSLT 2.0: What , Michael Kay |
| Month |