- From: <bugzilla@jessica.w3.org>
- Date: Sat, 28 Nov 2015 08:17:13 +0000
- To: public-qt-comments@w3.org
https://www.w3.org/Bugs/Public/show_bug.cgi?id=29310 Bug ID: 29310 Summary: [FO31] Invalid and ambiguous XPath expression in normative part of section 5.4.3 fn:substring Product: XPath / XQuery / XSLT Version: Candidate Recommendation Hardware: PC OS: Windows NT Status: NEW Severity: normal Priority: P2 Component: Functions and Operators 3.1 Assignee: mike@saxonica.com Reporter: abel.braaksma@xs4all.nl QA Contact: public-qt-comments@w3.org Target Milestone: --- Under 5.4.3 fn:substring we write: <quote> More specifically, the three argument version of the function returns the characters in $sourceString whose position $p satisfies: fn:round($start) <= $p < fn:round($start) + fn:round($length) </quote> But this is an illegal XPath expression. If it isn't meant to be an XPath expression, I thing the text should say so, but even then, the associativity is ambiguous. One might read this as: (fn:round($start) <= $p) < (fn:round($start) + fn:round($length)) or as: fn:round($start) <= ($p < fn:round($start)) + fn:round($length) But neither expressions make much sense in light of the text. Perhaps the following was meant (in which case parentheses are no longer necessary)? fn:round($start) <= $p and $p < fn:round($start) + fn:round($length) Alternatively, we might consider using the same approach as for fn:subsequence, which has a clearer way of defining in a proper XPath what the function is supposed to return. ------- Note that there are other places where ambiguous associativity is used, for instance '1<=N<=S" in fn:replace and "-π/2 <= θ <= +π/2" in math:asin, but in these case the textual context makes it clear that these are not meant to be read as XPath expressions, moreover, the mathematical meaning of "between" is easily deducted from the text. -- You are receiving this mail because: You are the QA Contact for the bug.
Received on Saturday, 28 November 2015 08:17:16 UTC