Streamed processing of input documents

Many more constructs are now acceptable in streaming templates. For full details see Streaming Templates.

Explicit support for streaming is available for the functions data(), avg(), count(), distinct-values(), empty(), exists(), min(), max(), string(), string-join(), sum(); for the operators "," and the (= | != | <= | < | >= | >) family, and for the instructions xsl:attribute, xsl:apply-imports, xsl:apply-templates, xsl:choose, xsl:comment, xsl:copy, xsl:copy-of, xsl:document, xsl:element, xsl:for-each, xsl:iterate, xsl:result-document. Implicit support is available for all functions and operators that process singleton items, and for many functions and instructions that operate on sequences - such as subsequence() and xsl:for-each-group - with the caveat that their input is buffered in memory.