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 |