<?xml version="1.0" encoding="iso-8859-1"?>
<?xml-stylesheet href="../make-menu.xsl" type="text/xsl"?><html>
   <head>
      <this-is section="about" page="whatis" subpage=""/>
      <!--
           Generated at 2011-12-09T20:47:22.916Z--><title>Saxonica: XSLT and XQuery Processing: What is Saxon?</title>
      <meta name="coverage" content="Worldwide"/>
      <meta name="copyright" content="Copyright Saxonica Ltd"/>
      <meta name="title" content="Saxonica: XSLT and XQuery Processing: What is Saxon?"/>
      <meta name="robots" content="noindex,nofollow"/>
      <link rel="stylesheet" href="../saxondocs.css" type="text/css"/>
   </head>
   <body class="main">
      <h1>What is Saxon?</h1>
      <p>The Saxon package is a collection of tools for processing XML documents. The main components
are: </p>
      <ul>
         <li content="para">
            <p>An XSLT 2.0 processor, which can be used from the command line, or invoked from
an application, using a supplied API. This can also be used to run XSLT 1.0 stylesheets.</p>
         </li>
         <li content="para">
            <p>An XPath 2.0 processor accessible to applications via a supplied API.</p>
         </li>
         <li content="para">
            <p>An XQuery 1.0 processor that can be used from the command line, or invoked from
an application by use of a supplied API. This includes support for XQuery Updates 1.0 which is now a W3C Recommendation.</p>
         </li>
         <li content="para">
            <p>An XML Schema 1.0 processor. This can be used on its own to validate a schema for correctness,
or to validate a source document against the definitions in a schema. It is also used to support the schema-aware
functionality of the XSLT and XQuery processors. Like the other tools, it can be run from the command line,
or invoked from an application.</p>
         </li>
         <li content="para">
            <p>As well as providing full implementations of the stable specifications listed above,
            Saxon also has a track record of early implementation of forthcoming standards. Saxon 9.4 offers
            a complete implementation of XML Schema 1.1, which is now in the final stages of standardization. It also
            implements many features from the forthcoming XSLT 3.0, XQuery 3.0, and XPath 3.0 working drafts which are still
            at an earlier stage of development.</p>
         </li>
         <li content="para">
            <p>On the Java platform, when using XSLT, XPath, or XML schema validation, Saxon offers a choice of APIs.
If you need portability across different vendor's tools, you can use the JAXP API 
for XSLT, XPath, and XML Schema processing, and the XQJ interface for XQuery. On the other hand, if
you want a more integrated and complete API offering access to all Saxon's facilities, the s9api interface
is recommended. You can also dive down deeper into the Saxon internals if you need to: there has been
no particular attempt to make interfaces private, and all public interfaces are documented in the JavaDoc.
Clearly, the deeper you go, the greater the risk of interfaces changing in future releases.</p>
         </li>
         <li content="para">
            <p>On the .NET platform, Saxon offers an API that enables close integration with other
services available from .NET, notably the XML-related classes in the <code>System.Xml</code>
namespace. It isn't possible to use Saxon as a transparent plug-in replacement for the <code>System.Xml.Xsl</code>
processor, because the API for the Microsoft engine using concrete classes rather than abstract
interfaces. However, it is possible to use it as a functional replacement with minor changes
to your application code.</p>
         </li>
      </ul>
      <p>Full details of Saxon's conformance to the specifications are provided in the 
<a class="bodylink" href="../conformance/intro.xml">Conformance</a> section.</p>
      <p>In addition, Saxon provides an extensive library 
of <a class="bodylink" href="../extensions/intro.xml">extensions</a>,
 all implemented in conformance with the XSLT and XQuery Recommendations to ensure that 
portable stylesheets and queries can be written. These include the <a href="http://www.exslt.org/" class="bodylink">EXSLT</a>
extension libraries <b>common</b>, <b>sets</b>, <b>math</b>, and <b>dates-and-times</b>.
Many of these extensions were pioneered in Saxon and have since become available
in other products.</p>
      <p>These extension functions are in general accessible from XQuery and XPath as well as XSLT,
except where they depend on stylesheet information. Many extensions are available in
Saxon-PE only, and some only in Saxon-EE.</p>
      <table width="100%">
         <tr>
            <td>
               <p align="right"><a class="nav" href="packages.xml">Next</a></p>
            </td>
         </tr>
      </table>
   </body>
</html>