[Bug 26469] New: [xslt 3.0] Streamed validation

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