<?xml version="1.0" encoding="iso-8859-1"?>
<?xml-stylesheet href="../../make-menu.xsl" type="text/xsl"?><html>
   <head>
      <this-is section="using-xquery" page="querycompilation" subpage="limitations"/>
      <!--
           Generated at 2010-10-29T18:20:48.427+01:00--><title>Saxonica: XSLT and XQuery Processing: Limitations</title>
      <meta name="coverage" content="Worldwide"/>
      <meta name="copyright" content="Copyright Saxonica Ltd"/>
      <meta name="title" content="Saxonica: XSLT and XQuery Processing: Limitations"/>
      <meta name="robots" content="noindex,nofollow"/>
      <link rel="stylesheet" href="../../saxondocs.css" type="text/css"/>
   </head>
   <body class="main">
      <h1>Limitations</h1>
      <p>There are a number of limitations when queries are compiled to Java code:</p>
      <ul>
         <li content="para">
            <p>Collations are not supported on all function calls
(especially when supplied as dynamic values)</p>
         </li>
         <li content="para">
            <p>Loop-lifted expressions are evaluated
eagerly, which means that dynamic errors may occur that should be masked</p>
         </li>
         <li content="para">
            <p>Many native Saxon extensions are unsupported, including functions such as <code>saxon:function()</code>
and <code>saxon:call()</code>, <code>saxon:format-number()</code> and <code>saxon:analyze-string()</code>.</p>
         </li>
         <li content="para">
            <p>XQuery Update and XQuery 3.0 extensions are not supported.</p>
         </li>
         <li content="para">
            <p>Not all calls to external (Java) functions are supported. In particular, calls that involve
collections and arrays may not work, as well as other calls where no static type information is available.
It's always possible to circumvent any restrictions by writing a Java wrapper around the desired target 
method that takes Saxon values as its arguments and result type (that is, classes such as <code>NodeInfo</code>,
<code>ValueRepresentation</code> and <code>SequenceIterator</code>.) There should also be no difficulty passing
simple atomic values such as strings, numbers, and booleans.</p>
         </li>
      </ul>
      <table width="100%">
         <tr>
            <td>
               <p align="right"><a class="nav" href="compilercommandline.xml">Next</a></p>
            </td>
         </tr>
      </table>
   </body>
</html>