- From: <bugzilla@jessica.w3.org>
- Date: Fri, 15 Jul 2016 10:43:48 +0000
- To: public-qt-comments@w3.org
https://www.w3.org/Bugs/Public/show_bug.cgi?id=29733
Bug ID: 29733
Summary: [xslt 3.0] Why you can't pass streamed nodes to the
second argument of a streamable stylesheet function
Product: XPath / XQuery / XSLT
Version: Candidate Recommendation
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
Target Milestone: ---
Consider the example in 19.8.5.2
Example: An absorbing stylesheet function with two arguments
<xsl:function name="f:compare-size" as="xs:integer" streamability="absorbing">
<xsl:param name="input0" as="node()"/>
<xsl:param name="input1" as="node()"/>
<xsl:sequence select="count($input0//*) - count($input1//*)"/>
</xsl:function>
We state:
Not streamable: f:compare-size(a, b) where a is an element in an unstreamed
document and b is an element in a streamed document
The explanation given is:
"The reason for the asymmetry is that the rules given in 19.8.8.11
Streamability of Variable References treat the variable references $input0 and
$input1 differently: the rules assume that $input1 will not be bound to a
streamed node."
This explanation doesn't hold water. The rules for variable references say that
$input1 is grounded and motionless. The actual reason is that for an absorbing
function call, the GSRs apply, and the operand usage for the second argument is
navigation, and it's pretty much a consequence of the GSRs that the supplied
expression for a navigation operand must be grounded.
We should change the explanation: "The reason for the asymmetry is that for the
first argument the operand usage is absorption, while the for the second it is
navigation: the GSRs ensure that when streamed nodes are supplied to an
operand with usage navigation, the resulting expression is roaming and
free-ranging.
--
You are receiving this mail because:
You are the QA Contact for the bug.
Received on Friday, 15 July 2016 10:43:58 UTC