- 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