- From: <bugzilla@jessica.w3.org>
- Date: Fri, 06 Mar 2015 13:08:30 +0000
- To: public-qt-comments@w3.org
https://www.w3.org/Bugs/Public/show_bug.cgi?id=28154 Bug ID: 28154 Summary: [xslt 3.0] streamable templates: climbing body Product: XPath / XQuery / XSLT Version: Last Call 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 I can't see anything in the rules in 6.6.4 (Streamable templates) that disallows the following: <xsl:template match="*" mode="a-streamable-mode" as="xs:string"> <xsl:sequence select="ancestor::section"/> </xsl:template> Clearly this isn't streamable: we can't atomize a node reached via the ancestor axis. But the rules don't seem to say so. We get the same issue with streamable stylesheet functions, so I propose to define: The *type-adjusted posture* of a construct C with respect to a U-type T is as follows: * If the intersection of T with U{N} is empty (that is, if T does not permit nodes), the posture of a call to the fn:data function with C as an operand. (Equivalently: it is the posture computed by the general streamability rules for a construct that has C as its only operand, with operand usage absorption). * Otherwise, the posture of C. In 6.6.4 Rule 3 then changes to: 3. The sweep of the sequence constructor in the body of the xsl:template element is either motionless or consuming 4. The type-adjusted posture of the sequence constructor forming the body of the xsl:template element, with respect to the U-type that corresponds to the declared return type of the template (defaulting to item()*), is grounded. These rules solve the example case because data(..) is roaming, not grounded. -- You are receiving this mail because: You are the QA Contact for the bug.
Received on Friday, 6 March 2015 13:08:33 UTC