- From: <bugzilla@jessica.w3.org>
- Date: Mon, 10 Feb 2014 19:40:34 +0000
- To: public-qt-comments@w3.org
https://www.w3.org/Bugs/Public/show_bug.cgi?id=24606
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
variables:
<xsl:variable name="temp1">
<xsl;stream href="input.xml">
<some processing/>
</xsl:stream>
</xsl;variable>
<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:pipeline>
<xsl;stream href="input.xml">
...
</xsl:stream>
<xsl;stream>
...
</xsl:stream>
</xsl:pipeline>
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
possible:
<xsl;result-document href="temp.xml" method="pipe">
...
</xsl:result-document>
<xsl;stream href="temp.xml">
...
</xsl:stream>
* Or something like Saxon's next-in-chain:
<xsl:result-document next="mode2">
<xsl:stream href="input.xml">
,,,
</xsl:stream>
</xsl:result-document>
where the "next" attribute is a mode that is then used to process the result
document.
--
You are receiving this mail because:
You are the QA Contact for the bug.
Received on Monday, 10 February 2014 19:40:36 UTC