- From: Ken Aldous <k.aldous@irl.cri.nz>
- Date: Sun, 25 Aug 2002 22:00:18 -0400 (EDT)
- To: <public-qt-comments@w3.org>
- Message-ID: <000801c24ca4$299b5b30$e9a041a1@kja>
Hi There is an issue with both of these functions that you may find worth considering. Function substring-before (http://www.w3.org/TR/xquery-operators/#func-substring-before) has the signatures: xf:substring-before(string? $operand1, string? $operand2) => string? xf:substring-before( string? $operand1, string? $operand2, anyURI $collationLiteral) => string? Paragraph 3 of the description of the function states: ... If the value of $operand1 does not contain a string that is equal to the value of $operand2, then the function returns the zero-length string. ... The issue is that, if the value of $operand1 is equal to the value of $operand2 (in which case the value of $operand1 certainly contains a string that is equal to the value of $operand2), then the function also returns a zero-length string. This is precisely what one would expect from the first paragraph of the description. So the function returns the same value when the two strings defined by the arguments are identical, and when they are entirely different. One way to resolve this would be to distinguish between an empty or null string, and what might be called an "undefined string". The undefined string could then be returned by the function when the condition of paragraph 3 is satisfied ($operand1 does not contain a string that is equal to the value of $operand2). This implies that the string domain would need to be extended to include this additional member, which then raises the unfortunate logical problem that the extended domain includes a member that does not belong to it ... Best regards, Ken Aldous. -- Ken Aldous Advanced Manufacturing Industrial Research Limited 5 Sheffield Crescent PO Box 20 028, Bishopdale Christchurch New Zealand http://www.irl.cri.nz/ Ph: +64 3 358 6818 Fax: +64 3 358 9506 k.aldous@irl.cri.nz
Received on Monday, 26 August 2002 03:46:28 UTC