- From: <bugzilla@jessica.w3.org>
- Date: Wed, 30 Jul 2014 11:03:11 +0000
- To: public-qt-comments@w3.org
https://www.w3.org/Bugs/Public/show_bug.cgi?id=26469
Bug ID: 26469
Summary: [xslt 3.0] Streamed validation
Product: XPath / XQuery / XSLT
Version: Working 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
In looking at the streamability of the xsl-to-json() we found that it is
difficult to see how to validate the streamed input without creating an
in-memory copy. If the stylesheet did the xsl:stream instruction itself then it
could invoke validation at this point, but if it accepts streamed input from
its caller then it cannot do this.
Also, xsl:stream can only validate the entire input stream, not selected parts
of it.
Apart from xsl:stream, the only way to invoke validation is
<xsl:variable name="x">
<xsl:copy-of select="..." validation="strict"/>
</xsl:variable>
and this creates a grounded (in-memory) copy.
A possible solution might be a validate() function with the property that if
the input is a streamed document, then the output is a streamed document, so
one could do for example
xsl:apply-templates select="validate(.)"
to apply validation to a stream without grounding it.
Another solution might be a more general mechanism for multi-phase streamed
processing, this might allow something like
<xsl:flow>
<xsl:document>
<xsl:copy-of select="." validation="strict"/>
</xsl:document>
<xsl:apply-templates select="."/>
</xsl:flow>
where each child instruction of xsl:flow takes the result of the previous
instruction as its input (i.e. as the context item)
--
You are receiving this mail because:
You are the QA Contact for the bug.
Received on Wednesday, 30 July 2014 11:03:13 UTC