W3C home > Mailing lists > Public > public-qt-comments@w3.org > February 2014

[Bug 24606] New: [xslt 3.0] Multi-pass streaming

From: <bugzilla@jessica.w3.org>
Date: Mon, 10 Feb 2014 19:40:34 +0000
To: public-qt-comments@w3.org
Message-ID: <bug-24606-523@http.www.w3.org/Bugs/Public/>

            Bug ID: 24606
           Summary: [xslt 3.0] Multi-pass streaming
           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

This thread in the December archives remains unresolved.

See https://lists.w3.org/Archives/Member/w3c-xsl-wg/2013Dec/0028.html (member
only) and subsequent thread.

We do not really have a clean way of doing multi-pass streaming in the current
spec (other than relying on external frameworks like XProc to combine multiple
stylesheets, of course).

The classic way of defining a multi-pass transformation in XSLT is to use

<xsl:variable name="temp1">
 <xsl;stream href="input.xml">
   <some processing/>
<xsl:apply-templates select="$temp1" mode="streamable"/>

But there is nothing here to say that $temp1 should be processed as a stream;
indeed we encourage the idea that streamed nodes are never bound to variables.

I would be tempted to suggest something like

  <xsl;stream href="input.xml">

where each xsl:stream in the pipeline after the first takes its input from the
result of the previous xsl:stream.

I'm trying to look around for a solution that doesn't involve new syntax, but
it's hard to find one. 

* Adding "streamable="yes" to xsl;variable is a possibility but it's still new
syntax, and the rules for what it means and how it can be used are potentially
quite tricky.

* Some kind of coupling of xsl:result-document and xsl:stream might be

  <xsl;result-document href="temp.xml" method="pipe">
  <xsl;stream href="temp.xml">

* Or something like Saxon's next-in-chain:

<xsl:result-document next="mode2">
  <xsl:stream href="input.xml">

where the "next" attribute is a mode that is then used to process the result

You are receiving this mail because:
You are the QA Contact for the bug.
Received on Monday, 10 February 2014 19:40:36 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 16:57:45 UTC