<?xml version="1.0" encoding="iso-8859-1"?>
<?xml-stylesheet href="../make-menu.xsl" type="text/xsl"?><html>
   <head>
      <this-is section="conformance" page="xslt30" subpage=""/>
      <!--
           Generated at 2011-12-09T20:47:22.916Z--><title>Saxonica: XSLT and XQuery Processing: XSLT 3.0 conformance</title>
      <meta name="coverage" content="Worldwide"/>
      <meta name="copyright" content="Copyright Saxonica Ltd"/>
      <meta name="title"
            content="Saxonica: XSLT and XQuery Processing: XSLT 3.0 conformance"/>
      <meta name="robots" content="noindex,nofollow"/>
      <link rel="stylesheet" href="../saxondocs.css" type="text/css"/>
   </head>
   <body class="main">
      <h1>XSLT 3.0 conformance</h1>
      <p>The XSLT 3.0 specification is far from complete, so at the time of writing it is not meaningful to
      discuss conformance in fine detail.</p>
      <p>Broadly speaking:</p>
      <ul>
         <li>
            <p>Saxon-HE does not implement any XSLT 3.0 features</p>
         </li>
         <li>
            <p>Saxon-PE implements a selection of XSLT 3.0 (and XPath 3.0) features, with the exception
         of schema-awareness and streaming</p>
         </li>
         <li>
            <p>Saxon-EE implements additional features relating to streaming (processing of a source document without
         constructing a tree in memory.</p>
         </li>
      </ul>
      <p>For information on streaming, see <a class="bodylink" href="../sourcedocs/streaming.xml">Streaming of large source documents</a>.</p>
      <p>At the time of writing, the latest published working draft is <a href="http://www.w3.org/TR/xslt-21/" class="bodylink">XSLT 2.1</a>
      published on 11 May 2010. Since then the WG has produced many internal drafts, and some of the new features appear in Saxon 9.4
      ahead of publication by W3C. The WG has announced that XSLT 2.1 will be renumbered XSLT 3.0, and Saxon uses the new numbering.</p>
      <p>XSLT 3.0 features are not available unless explicitly requested. The request can be by setting <code>-xsltversion:3.0</code>
      on the command line, by calling <code>setXsltLanguageVersion()</code>
         on the <a class="bodylink" href="../javadoc/net/sf/saxon/s9api/XsltCompiler.html"><code>XsltCompiler</code></a> object, or by use of the configuration setting 
         <a class="bodylink" href="../javadoc/net/sf/saxon/lib/FeatureKeys.html"><code>FeatureKeys.XSLT_VERSION</code></a>. Setting <code>version="3.0"</code>
      on the <code>xsl:stylesheet</code> element is recommended, but is not sufficient on its own.</p>
      <p>XSLT 3.0 features implemented in Saxon 9.4 include the following:</p>
      <ul>
         <li>
            <p>The <code>xsl:iterate</code> instruction</p>
         </li>
         <li>
            <p>The <code>xsl:mode</code> declaration</p>
         </li>
         <li>
            <p>The <code>xsl:merge</code> instruction</p>
         </li>
         <li>
            <p>The <code>unparsed-text-lines()</code> function</p>
         </li>
         <li>
            <p>The <code>copy-of</code> and <code>snapshot()</code> functions</p>
         </li>
         <li>
            <p>The <code>xsl:try</code> instruction</p>
         </li>
         <li>
            <p>The <code>xsl:evaluate</code> instruction</p>
         </li>
         <li>
            <p>The syntax of patterns has been generalized; though not all the new XSLT 3.0 features are implemented.</p>
         </li>
         <li>
            <p>The <code>select</code> attribute of the <code>xsl:copy</code> instruction</p>
         </li>
      </ul>
      <p>Maps, as defined in the draft XSLT 3.0 specification, are implemented as an extension to XPath 3.0. For details see
         <a class="bodylink" href="../expressions/xpath30maps.xml">Maps in XPath 3.0</a>.</p>
      <table width="100%">
         <tr>
            <td>
               <p align="right"><a class="nav" href="xpath20.xml">Next</a></p>
            </td>
         </tr>
      </table>
   </body>
</html>