<?xml version="1.0" encoding="iso-8859-1"?> <?xml-stylesheet href="../../make-menu.xsl" type="text/xsl"?><html> <head> <this-is section="changes" page="intro92" subpage="streaming92"/> <!-- Generated at 2011-12-09T20:47:22.916Z--><title>Saxonica: XSLT and XQuery Processing: Streaming</title> <meta name="coverage" content="Worldwide"/> <meta name="copyright" content="Copyright Saxonica Ltd"/> <meta name="title" content="Saxonica: XSLT and XQuery Processing: Streaming"/> <meta name="robots" content="noindex,nofollow"/> <link rel="stylesheet" href="../../saxondocs.css" type="text/css"/> </head> <body class="main"> <h1>Streaming</h1> <p>The <code>saxon:iterate</code> instruction and its subsidiary instructions <code>saxon:break</code>, <code>saxon:continue</code>, and <code>saxon:finally</code> are now available only in Saxon-EE. This reflects the fact that the instructions are designed primarily for use with streaming, which is available only in Saxon-EE.</p> <p>The behaviour of <code>saxon:iterate</code> has been changed in the case where a <code>saxon:continue</code> instruction does not specify values for all the parameters declared on the containing <code>saxon:iterate</code> instruction. Any parameters for which no value is supplied now retain their previous value (that is, the effect is the same as specifying <code><xsl:with-param name="p" select="$p"/></code>). Previously such parameters reverted to their default value. A further change is that it is no longer possible to specify <code>required="yes"</code> on <code>saxon:iterate</code> parameters. These changes are in line with the (as-yet-unpublished) XSLT 2.1 draft specification.</p> <p>Saxon 9.2 introduces the concept of <i>streaming templates</i>. This allows hierarchic processing of a document using <code><xsl:apply-templates></code> to operate in a streaming pass over the document, without building the tree in memory. The templates, of course, have to conform to strict rules to make them streamable. Nevertheless a great many simple transformations can be implemented this way: for example, renaming elements, deleting selected elements, computing new attribute values, and so on.</p> <p>For more details see <a class="bodylink" href="../../sourcedocs/streaming/streaming-templates.xml">Streaming Templates</a>.</p> <table width="100%"> <tr> <td> <p align="right"><a class="nav" href="functions92.xml">Next</a></p> </td> </tr> </table> </body> </html>