<?xml version="1.0" encoding="iso-8859-1"?> <?xml-stylesheet href="../make-menu.xsl" type="text/xsl"?><html> <head> <this-is section="conformance" page="xqj" subpage=""/> <!-- Generated at 2011-12-09T20:47:22.916Z--><title>Saxonica: XSLT and XQuery Processing: XQJ Conformance</title> <meta name="coverage" content="Worldwide"/> <meta name="copyright" content="Copyright Saxonica Ltd"/> <meta name="title" content="Saxonica: XSLT and XQuery Processing: XQJ Conformance"/> <meta name="robots" content="noindex,nofollow"/> <link rel="stylesheet" href="../saxondocs.css" type="text/css"/> </head> <body class="main"> <h1>XQJ Conformance</h1> <p>Saxon implements XQJ, the XQuery API for Java defined in <a href="http://www.jcp.org/en/jsr/detail?id=225" class="bodylink">JSR 225</a>. The current version that is implemented is the Final Release dated March 2009, which was publicly announced on 24 June 2009.</p> <p>The compliance definition for XQJ (section 3 of the specification) requires a statement of how all aspects of the specification that are implementation-defined have been implemented. The following table provides this statement for the Saxon implementation.</p> <table> <tr> <td content="para"> <p> <b>Implementation-defined feature</b> </p> </td> <td content="para"> <p> <b>Saxon implementation</b> </p> </td> </tr> <tr> <td content="para"> <p> The class name of the XQDataSource implementation </p> </td> <td content="para"> <p> <code>net.sf.saxon.xqj.SaxonXQDataSource</code> </p> </td> </tr> <tr> <td content="para"> <p> All properties defined on the XQDataSource implementation </p> </td> <td content="para"> <p> The following properties are defined: allowExternalFunctions, dtdValidation, expandAttributeDefaults, expandXInclude, retainLineNumbers, schemaValidationMode, stripWhitespace, useXsiSchemaLocation, xmlVersion, xsdVersion. </p> </td> </tr> <tr> <td content="para"> <p> The syntax and semantics for commands, assuming executing commands through XQExpression is supported. </p> </td> <td content="para"> <p> No commands are supported (only XQuery expressions). </p> </td> </tr> <tr> <td content="para"> <p> Is cancelling of query execution supported? </p> </td> <td content="para"> <p> No, Query execution cannot be cancelled. </p> </td> </tr> <tr> <td content="para"> <p> The default and supported values for each parameter described in XQuery Serialization </p> </td> <td content="para"> <p> Although this is implementation-defined, the test suite makes some assumptions and these have been followed. The defaults are: byte-order-mark="no" cdata-section-elements="" doctype-public=null doctype-system=null encoding="utf-8" indent="yes" media-type="application/xml" method="xml" normalization-form="none" omit-xml-declaration="yes" standalone="omit" undeclare-prefixes="no" use-character-maps="" version="1.0" </p> </td> </tr> <tr> <td content="para"> <p> Additional StAX or SAX event types being reported, beside the event types documented in [the] specification </p> </td> <td content="para"> <p> None. </p> </td> </tr> <tr> <td content="para"> <p> Support for XDM instances and types based on user-defined schema types </p> </td> <td content="para"> <p> When used with Saxon-EE, user-defined schema types are supported, to the extent that the XQJ interface allows them to be used. </p> </td> </tr> <tr> <td content="para"> <p> The semantics with respect to node identity, document order, and full node context, when a node is bound to an external variable. </p> </td> <td content="para"> <p> When a node is bound to an XQItem and hence to a variable in a query, node identity, document order, and "context" (relationships to other nodes) are maintained. </p> </td> </tr> <tr> <td content="para"> <p> Is login timeout supported? </p> </td> <td content="para"> <p> No. (There is no concept of login.) </p> </td> </tr> <tr> <td content="para"> <p> Are transactions supported? </p> </td> <td content="para"> <p> No. Saxon only supports read-only query via the XQJ interface. </p> </td> </tr> <tr> <td content="para"> <p> Behaviour of the <code>getNodeUri()</code> method, defined on <code>XQItemAccessor</code>, for other than document nodes. </p> </td> <td content="para"> <p> The method is defined on any node, and returns the URI of the external entity in which the containing element originally appeared, if known, or the empty URI otherwise. </p> </td> </tr> <tr> <td content="para"> <p> Behaviour of the <code>getTypeName()</code> method, defined on <code>XQItemType</code>, for anonymous types. </p> </td> <td content="para"> <p> Anonymous types have a system-generated name. </p> </td> </tr> <tr> <td content="para"> <p> Behaviour of the <code>getSchemaURI()</code> method, defined on <code>XQItemType</code> </p> </td> <td content="para"> <p> The system identifier (document URI) of the original schema document is reported if the information is available. </p> </td> </tr> <tr> <td content="para"> <p> Behaviour of the <code>createItemFromDocument()</code> methods, defined on <code>XQDataFactory</code>, if the specified value is not a well-formed XML document. </p> </td> <td content="para"> <p> An exception is thrown. </p> </td> </tr> <tr> <td content="para"> <p> Behaviour of the <code>bindDocument</code> methods, defined on <code>XQDynamicContext</code>, if the specified value is not a well-formed XML document. </p> </td> <td content="para"> <p> An exception is thrown. </p> </td> </tr> <tr> <td content="para"> <p> The error codes, reported through <code>XQQueryException</code>, in addition to the standard error codes listed in [XQuery] and its associated specifications. </p> </td> <td content="para"> <p> None. The Saxon implementation does not currently use the class <code>XQQueryException</code>. </p> </td> </tr> </table> <div class="boxed" style="border: solid thin; background-color: #B1CCC7; padding: 2px">Section 19 of the XQJ specification ("Interoperability") suggests that an XQJ specification should accept items and built-in types that were created using a different vendor's XQJ implementation. In general, Saxon will only handle the Saxon implementation of XQJ interfaces. At any rate, it has not been validated with third-party implementations. </div> <table width="100%"> <tr> <td> <p align="right"/> </td> </tr> </table> </body> </html>