<?xml version="1.0" encoding="iso-8859-1"?>
<?xml-stylesheet href="../../make-menu.xsl" type="text/xsl"?><html>
   <head>
      <this-is section="changes" page="intro93" subpage="xquery30-93"/>
      <!--
           Generated at 2011-12-09T20:47:22.916Z--><title>Saxonica: XSLT and XQuery Processing: XQuery 3.0 and XQuery Update changes</title>
      <meta name="coverage" content="Worldwide"/>
      <meta name="copyright" content="Copyright Saxonica Ltd"/>
      <meta name="title"
            content="Saxonica: XSLT and XQuery Processing: XQuery 3.0 and XQuery Update changes"/>
      <meta name="robots" content="noindex,nofollow"/>
      <link rel="stylesheet" href="../../saxondocs.css" type="text/css"/>
   </head>
   <body class="main">
      <h1>XQuery 3.0 and XQuery Update changes</h1>
      <p><i>The term XQuery 3.0 is the new proposed name for the language currently published as a W3C working draft under the title XQuery 1.1.</i></p>
      <p>In the absence of an <code>xquery version</code> declaration in the query prolog, Saxon now permits XQuery 3.0 syntax if it is enabled from the command
    line or API. An <code>xquery version</code> declaration that specifies version="3.0" is accepted only if XQuery 3.0 has been enabled from the
    command line or API. </p>
      <p>The syntax for production <code>AnyFunctionItem</code> is now <code>function(*)</code> rather than <code>function()</code>. For backwards compatibility
with Saxon 9.2, the older syntax continues to be supported for the time being.</p>
      <p>The new <code>switch</code> expression is implemented.</p>
      <p>The custom syntax for partial function application (for example <code>concat("[", ?, ", ", ?, "]")</code> is implemented. (For the time being,
the <code>partial-apply()</code> function remains available as well.)</p>
      <p>The syntax for "outer for" has been changed (W3C bug 6927). In place of <code>"outer for $x in E"</code>, write <code>"for $x allowing empty in E"</code>.</p>
      <p>In a FLOWR expression, the <code>where</code> clause can now be repeated. (The construct <code>where X where Y</code> is simply another way of writing
<code>where X and Y</code>.)</p>
      <p>The new context-independent QName syntax <code>"uri":local</code> is recognized if XQuery 3.0 is enabled.</p>
      <p>The qualifiers <code>deterministic</code>, <code>nondeterministic</code>, <code>public</code>, and <code>private</code> are
now recognized on function declarations. However they currently have no effect.</p>
      <p>In XQuery Update, the tree constructed by the <code>copy-modify</code> (or "transform") expression will now automatically be
a mutable tree, regardless of the default tree model for the <a class="bodylink" href="../../javadoc/net/sf/saxon/Configuration.html"><code>Configuration</code></a>.</p>
      <p>On the <code>net.sf.saxon.Query</code> command line interface, the <code>-traceout</code> option now governs the destination of trace output from the standard 
         <a class="bodylink" href="../../javadoc/net/sf/saxon/lib/TraceListener.html"><code>TraceListener</code></a> (-T option) as well as from the <code>trace()</code> function.
         The <code>-TP</code> option (for timing profile information) is extended
         so a filename can be specified: <code>-TP:filename</code>.</p>
      <table width="100%">
         <tr>
            <td>
               <p align="right"><a class="nav" href="fo30-93.xml">Next</a></p>
            </td>
         </tr>
      </table>
   </body>
</html>