[Bug 29712] New: [xslt3.0] Why are streamable stylesheet functions required to be consuming?

https://www.w3.org/Bugs/Public/show_bug.cgi?id=29712

            Bug ID: 29712
           Summary: [xslt3.0] Why are streamable stylesheet functions
                    required to be consuming?
           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: ---

For streamability categories absorbing, shallow-descent, and deep-descent, we
require the function body to be consuming. Is there any reason why we don't
also allow it to be motionless?

This restriction requires the user to have a very good understanding of the
circumstances under which expressions are consuming vs motionless. For example:

<xsl:function streamability="absorbing">
  <xsl:param name="n" as="node()"/>
  <xsl:sequence select="exists($n/@*) or exists($n/*)"/>
</xsl:function>

is allowed, but

<xsl:function streamability="absorbing">
  <xsl:param name="n" as="node()"/>
  <xsl:sequence select="exists($n/@*) or has-children($n)"/>
</xsl:function>

is not, because has-children() is motionless.

I can't think of any other cases where we allow an expression to be consuming
and don't also allow it to be motionless.

-- 
You are receiving this mail because:
You are the QA Contact for the bug.

Received on Wednesday, 29 June 2016 09:27:41 UTC