[Bug 6861] [XPath] general comparison operator '='

http://www.w3.org/Bugs/Public/show_bug.cgi?id=6861


Michael Kay <mike@saxonica.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |mike@saxonica.com




--- Comment #2 from Michael Kay <mike@saxonica.com>  2009-05-02 16:05:58 ---
>Why does the XPath 2.0 spec defines the semantics of operator '=' in such a way that, magnitude equality of only 1 item is enough, for '=' operator to return 'true'?

Well, XPath 2.0 defines it this way because XPath 1.0 defined it that way, so
your question translates into, why did XPath 1.0 do it this way.

The factual answer is that I don't know: I wasn't at the meetings and haven't
studied the minutes. However, I can speculate.

With a predicate like book[title='Black Beauty'] it is very common that there
is only one title, and it should be easy and intuitive to write such a query
for books with only one title. If a book has no title, it seems intuitive that
the predicate should not select the book. This only leaves the question of what
should be done if there are multiple titles. In some other situations, XPath
1.0 took the approach of selecting the first title. Another approach, favoured
in some situations in XPath 2.0, is to raise an error. Dynamic errors were not
part of the culture of XPath 1.0 (and given all the problems we have since had
with errors and optimizations, I have increasing sympathy with this design
choice.) Choosing to compare the first item only would have probably been more
consistent, but it's not clear that it would have been a more intuitive
interpretation.

Anyway, this decision was made more than ten years ago, and it seems to work
reasonably well. If someone were starting from scratch, I expect they would do
it differently, but it's not clear to me that they would do it better - XPath
has proved remarkably successful.


-- 
Configure bugmail: http://www.w3.org/Bugs/Public/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.

Received on Saturday, 2 May 2009 16:06:11 UTC