# Streaming in XSLT

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.

Next