<?xml version="1.0" encoding="iso-8859-1"?>
<?xml-stylesheet href="../../make-menu.xsl" type="text/xsl"?><html>
   <head>
      <this-is section="changes" page="intro" subpage="extensions-93"/>
      <!--
           Generated at 2010-10-29T18:20:48.427+01:00--><title>Saxonica: XSLT and XQuery Processing: Extensions</title>
      <meta name="coverage" content="Worldwide"/>
      <meta name="copyright" content="Copyright Saxonica Ltd"/>
      <meta name="title" content="Saxonica: XSLT and XQuery Processing: Extensions"/>
      <meta name="robots" content="noindex,nofollow"/>
      <link rel="stylesheet" href="../../saxondocs.css" type="text/css"/>
   </head>
   <body class="main">
      <h1>Extensions</h1>
      <p>A new extension is introduced to allow maps to be maintained. A map is a dictionary data structure that maps atomic values to
    arbitrary XDM sequences. The map can be built incrementally, but it is immutable (as with operations on sequences, adding
    an entry to a map creates a new map, leaving the existing map unchanged). The implementation optimizes this behind the scenes
    to avoid rebuilding the map from scratch each time an entry is added, and to allow memory to be shared. 
    For details see <a class="bodylink" href="../../extensions/map.xml">The map extension</a>.</p>
      <p>This facility is particularly useful in streaming transformations in conjunction with <code>xsl:iterate</code>, as it allows arbitrary information
         to be "remembered" for later use during the course of a streaming pass through the source document.</p>
      <p>A new extension function <code>current-mode-name()</code> is introduced for use in XSLT, returning the name of the current mode as a QName. </p>
      <p>In XSLT, the extension attribute <code>saxon:threads</code> is introduced on <code>xsl:for-each</code> to allow items in the input
sequence to be processed in parallel, using the specified number of threads. Multithreading will be used only when requested; it can
also be suppressed at the Configuration level, and it is disabled when a stylesheet is compiled with tracing enabled, because the
trace output would otherwise be unintelligible.</p>
      <table width="100%">
         <tr>
            <td>
               <p align="right"><a class="nav" href="xslt30-93.xml">Next</a></p>
            </td>
         </tr>
      </table>
   </body>
</html>