- From: <bugzilla@wiggum.w3.org>
- Date: Thu, 31 Jan 2008 20:25:20 +0000
- To: public-qt-comments@w3.org
- CC:
http://www.w3.org/Bugs/Public/show_bug.cgi?id=5445
Summary: [XPath] Undocumented incompatibility with compatibility
mode "true" for general comparison involving boolean
Product: XPath / XQuery / XSLT
Version: Recommendation
Platform: PC
URL: http://www.w3.org/TR/xpath20/#id-general-comparisons
OS/Version: Windows XP
Status: NEW
Severity: normal
Priority: P5
Component: XPath
AssignedTo: chamberl@almaden.ibm.com
ReportedBy: zongaro@ca.ibm.com
QAContact: public-qt-comments@w3.org
According to section 3.5.2 of XPath 2.0,[1] if "XPath 1.0 compatibility mode is
true and... either operand is a single atomic value that is an instance of
xs:boolean, then the other operand is converted to xs:boolean by taking its
effective boolean value."
Thus, with compatibility mode true, the result of evaluating the expression
"true() > number('0.5')" is false, while the result of "true() = number('0.5')"
would be true.
According to section 3.4 of XPath 1.0,[2] if one operand of an = or != operator
is xs:boolean and the other is not a node-set, the other operand is converted
to xs:boolean; if the operator is <, <=, > or >=, and neither operand is a
node-set, both are converted to numbers. Thus, in XPath 1.0 the result of
evaluating "true() > number('0.5')" is true, and the result of "true() =
number('0.5')" is also true.
The list of incompatibilities with compatibility mode true in section I.1 of
XPath 2.0,[3] as modified by erratum XP.E2,[4] does not mention this
incompatibility.
[1] http://www.w3.org/TR/xpath20/#id-general-comparisons
[2] http://www.w3.org/TR/xpath#booleans
[3] http://www.w3.org/TR/xpath20/#id-incompat-in-true-mode
[4] http://www.w3.org/XML/2007/qt-errata/xpath20-errata.html#E2
Received on Thursday, 31 January 2008 20:25:32 UTC