<?xml version="1.0" encoding="iso-8859-1"?>
<?xml-stylesheet href="../../make-menu.xsl" type="text/xsl"?><html>
   <head>
      <this-is section="changes" page="s90" subpage="diagnostics90"/>
      <!--
           Generated at 2011-12-09T20:47:22.916Z--><title>Saxonica: XSLT and XQuery Processing: Diagnostics</title>
      <meta name="coverage" content="Worldwide"/>
      <meta name="copyright" content="Copyright Saxonica Ltd"/>
      <meta name="title" content="Saxonica: XSLT and XQuery Processing: Diagnostics"/>
      <meta name="robots" content="noindex,nofollow"/>
      <link rel="stylesheet" href="../../saxondocs.css" type="text/css"/>
   </head>
   <body class="main">
      <h1>Diagnostics</h1>
      <p>The format of the "explain" output which displays a compiled and optimized expression
tree has changed. The format is now XML, making the raw output amenable to further processing,
for example filtering or graphical display. The <code>-e</code> flag on the Query command
line is extended to allow <code>-explain:filename</code>, so that the output can more easily be
captured in a file.</p>
      <p>The options <code>-explain</code> and <code>-explain:filename</code> have been added to the <code>Transform</code>
command line allowing an expression tree to be generated for an entire stylesheet. The extension attribute
<code>saxon:explain</code> remains available for more selective reporting.</p>
      <div class="boxed"
           style="border: solid thin; background-color: #B1CCC7; padding: 2px">Because the explain output is now XML, it is amenable to analysis using XQuery or XSLT. The Saxon
XQuery test driver now allows the test catalog to contain assertions (in the form of XPath expressions)
about the content of the expression tree. This allows tests to be written that check not only that the
query produces correct results, but that the expected optimizations are applied.</div>
      <p>From the Java level, explain output is available via a new method on the <code>Expression</code> class.
The old <code>display()</code> method is retained (for the time being) for compatibility, but produces
output in the new format.</p>
      <table width="100%">
         <tr>
            <td>
               <p align="right"><a class="nav" href="namepool90.xml">Next</a></p>
            </td>
         </tr>
      </table>
   </body>
</html>