<?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 2010-10-29T18:20:48.427+01:00--><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>&lt;xsl:with-param name="p" select="$p"/&gt;</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>&lt;xsl:apply-templates&gt;</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>