- From: <bugzilla@jessica.w3.org>
- Date: Tue, 13 Aug 2013 11:49:42 +0000
- To: public-qt-comments@w3.org
https://www.w3.org/Bugs/Public/show_bug.cgi?id=22937 Bug ID: 22937 Summary: [xslt 3.0] Rules for streamable patterns Classification: Unclassified Product: XPath / XQuery / XSLT Version: Working drafts Hardware: PC OS: All Status: NEW Severity: normal Priority: P2 Component: XSLT 3.0 Assignee: mike@saxonica.com Reporter: mike@saxonica.com QA Contact: public-qt-comments@w3.org The rules for motionless patterns in 19.3.10 say: (a) The expression in the predicate must be motionless. (b) The predicate must not contain a call on either of the functions position or last. Now, the second condition is not complete, because we must also eliminate indirect calls via named function references or function-lookup(). Also, the second condition is stricter than it needs to be. For example, it disallows a pattern such as match="p[. = $special[last()]]" And perhaps the second condition is redundant? Certainly the ban on last() appears redundant, because if the expression contains a call on last() other than one masked as in this example, then it will not be a motionless expression (last() is free-ranging). But calls to position() are allowed in a motionless expression. For clarity, it seems best to ignore the partial redundancy and leave the ban on position() in place. So I propose to change rule (b) to: (b) The predicate must not contain any of the following, unless it occurs within a nested predicate: (i) A function call to position, last, or function-lookup (ii) A named function reference that references position, last, or function-lookup I would propose to make the meaning of "nested predicate" clear by means of examples; and then add a Note to say that the ban on last() is redundant. -- You are receiving this mail because: You are the QA Contact for the bug.
Received on Tuesday, 13 August 2013 11:49:43 UTC