XQuery Test Suite Result Summary

This document contains the results of running the XML Query Test Suite on one or more implementaions of XQuery and XQueryX.

The latest version of this test suite is XQTS 1.0.2. Implementations that have used older versions of the test suite are noted.

When results are listed as number/number/number, then indicate passed/failed/total. Passed and failed together may not equal total, due to tests not run or not reported.

The latest version of our files is available at http://dev.w3.org/cvsweb/2006/xquery-test-suite/. The "catalog" and "query" links found with each test case are links to this version.

Legend:    
        
passed    
        
almost passed
(≥ 98%)
    
        
failed    
        
untested
XQuery

XQueryX

FeatureAnglo-DT
(unspecified)
BaseXBerkeley DB XML
(unspecified)
DataDirect XQueryeXist-dbGalax
(unspecified)
QexoQizxSaxon-SA
(XQTS CVS)
Sedna XML Database SystemStylus Studio
(XQTS 1.0)
xbird/open
(XQTS 1.0.0 dev (rev 1.28))
X-Hive/DBxq2xsl
(XQTS 1.0.2 dev)
XQuantumAnonymous
(XQTS 1.0)
xq2xsl
(XQTS 1.0.2 dev)
Summary
Minimal Conformance 14630 / 0 / 14637 
100%
 14532 / 105 / 14637 
99.3%
 14566 / 42 / 14637 
99.5%
 14593 / 0 / 14637 
99.7%
 14544 / 93 / 14637 
99.4%
 14555 / 69 / 14637 
99.4%
 14535 / 62 / 14637 
99.3%
 14622 / 15 / 14637 
99.9%
 14637 / 0 / 14637 
100%
 14459 / 178 / 14637 
98.8%
 14593 / 22 / 14637 
99.7%
 12041 / 2111 / 14637 
82.3%
 14589 / 35 / 14637 
99.7%
 14588 / 49 / 14637 
99.7%
 14378 / 144 / 14637 
98.2%
 13813 / 538 / 14388 
96%
 14275 / 85 / 14388 
99.2%
1/17
Optional Features
    Schema Import Feature 174 / 0 / 174  0 / 0 / 174  117 / 3 / 174  0 / 0 / 174  0 / 0 / 174  0 / 0 / 174  14 / 160 / 174  0 / 0 / 174  174 / 0 / 174  0 / 0 / 174  173 / 1 / 174  0 / 1 / 174  174 / 0 / 174  0 / 0 / 174  0 / 0 / 174  102 / 72 / 174  0 / 0 / 174 3/17
    Schema Validation Feature 25 / 0 / 25  0 / 0 / 25  0 / 0 / 25  0 / 0 / 25  0 / 0 / 25  0 / 0 / 25  1 / 24 / 25  0 / 0 / 25  25 / 0 / 25  0 / 0 / 25  25 / 0 / 25  0 / 0 / 25  25 / 0 / 25  0 / 0 / 25  0 / 0 / 25  22 / 3 / 25  0 / 0 / 25 4/17
    Static Typing Feature 0 / 0 / 46  40 / 6 / 46  0 / 0 / 46  46 / 0 / 46  0 / 0 / 46  46 / 0 / 46  30 / 16 / 46  46 / 0 / 46  46 / 0 / 46  0 / 0 / 46  0 / 0 / 46  0 / 0 / 46  0 / 0 / 46  0 / 0 / 46  46 / 0 / 46  45 / 1 / 46  0 / 0 / 46 5/17
    Full Axis Feature 130 / 0 / 130  130 / 0 / 130  130 / 0 / 130  130 / 0 / 130  130 / 0 / 130  130 / 0 / 130  130 / 0 / 130  130 / 0 / 130  130 / 0 / 130  130 / 0 / 130  130 / 0 / 130  130 / 0 / 130  130 / 0 / 130  130 / 0 / 130  0 / 0 / 130  130 / 0 / 130  130 / 0 / 130 16/17
    Module Feature 32 / 0 / 32  32 / 0 / 32  32 / 0 / 32  32 / 0 / 32  0 / 0 / 32  32 / 0 / 32  32 / 0 / 32  32 / 0 / 32  32 / 0 / 32  32 / 0 / 32  32 / 0 / 32  17 / 15 / 32  28 / 4 / 32  30 / 2 / 32  0 / 0 / 32  0 / 31 / 31  29 / 2 / 31 10/17
    Trivial XML Embedding Feature 0 / 0 / 4  0 / 0 / 4  0 / 0 / 4  0 / 0 / 4  0 / 0 / 4  0 / 0 / 4  0 / 4 / 4  0 / 0 / 4  0 / 0 / 4  0 / 0 / 4  0 / 0 / 4  0 / 0 / 4  4 / 0 / 4  0 / 0 / 4  0 / 0 / 4  0 / 4 / 4  0 / 0 / 4 1/17


Contents


Implementations:

Anglo-DT

Organization:Clinical & Biomedical Computing Limited
http://www.cbcl.co.uk/
Implementation:Anglo-DT
Version:3.0.2893.18414

BaseX

Organization:Christian Gruen; DBIS Group, University of Konstanz
http://www.basex.org/
Implementation:BaseX
Version:4.0

Berkeley DB XML

Organization:Oracle
http://www.sleepycat.com
Implementation:Berkeley DB XML
Version:Oracle: Berkeley DB XML 2.3.8: (December 8, 2006)

DataDirect XQuery

Organization:DataDirect Technologies
http://www.datadirect.com/xquery
Implementation:DataDirect XQuery
Version:3.0

eXist-db

Organization:eXist Open Source Native XML database
http://www.exist-db.org
Implementation:eXist-db
Version:1.1.2dev (revision 7056 20071212)

Galax

Organization:Galax Team
http://www.galaxquery.org
Implementation:Galax
Version:1.0.0

Qexo

Organization:GNU / Per Bothner
Implementation:Qexo
Version:1.8.91 (revision 5728M)

Qizx

Organization:XMLmind
http://www.xmlmind.com/qizx/
Implementation:Qizx
Version:Qizx 2.0

Saxon-SA

Organization:Saxonica Limited
http://www.saxonica.com
Implementation:Saxon-SA
Version:8.7.3.1

Sedna XML Database System

Organization:Sedna Team, Institute for System Programming RAS
http://modis.ispras.ru/sedna
Implementation:Sedna XML Database System
Version:2.0

Stylus Studio

Organization:Stylus Studio
http://www.stylusstudio.com
Implementation:Stylus Studio
Version:2007 Release 1

xbird/open

Organization:Makoto YUI (NAIST)
http://db-www.naist.jp/~makoto-y/proj/xbird/
Implementation:xbird/open
Version:1.0 alpha 1

X-Hive/DB

Organization:X-Hive Corporation
http://www.x-hive.com
Implementation:X-Hive/DB
Version:8.0

xq2xsl

Organization:David Carlisle
http://monet.nag.co.uk/xq2xml
Implementation:xq2xsl
Version:20061026

XQuantum

Organization:Cognetic Systems, Inc.
http://www.cogneticsystems.com
Implementation:XQuantum
Version:1.5

xq2xsl

Organization:David Carlisle
http://monet.nag.co.uk/xq2xml
Implementation:xq2xsl
Version:20061026

Test Run:

Anglo-DT

Date:2007-12-03
Test Suite Version:
Syntax:XQuery

BaseX

Date:2007-11-16
Test Suite Version:1.0.2
Syntax:XQuery
Transformation:

Queries were run as supplied (after initializing the external variables).

Comparison:

Based on the XQTS recommendations. Additionally, whitespaces were removed in results that are spanning several lines.

Other Comments:

The test run took 56 seconds (Pentium M 1.6 GHz, 1.25 GB RAM), including serialization of the results to single files. Procedure: all XML documents are stored once in the database and re-opened if requested another time.

Berkeley DB XML

Date:2006-12-13
Test Suite Version:
Syntax:XQuery
Comparison:

XML and fragment comparisons are performed by serializing the results, re-parsing them, and using a custom deep-equal like function. This function currently ignores any text nodes that consist entirely of whitespace.

DataDirect XQuery

Date:2007-05-02
Test Suite Version:1.0.2
Syntax:XQuery
Transformation:

1. Standard Customizations

- 1.1. Default Context Item: The initial context item is set by a 'fn:doc()' call

- 1.2. Library Imports: Library hints are added for each 'import module' call

2. DataDirect XQuery Customizations

- 2.1. XPST0005 detection: DataDirect XQuery runs without XPST0005 detection for most queries. When error code XPST0005 is expected an extra option was declared: declare option ddtek:detect-XPST0005 'yes'.

- 2.2. When 'fn' is redeclared in the query, the 'fn:doc()' call to set the initial context will fail. To solve this 'xvsfn' is set to the default function namespace "http://www.w3.org/2005/xpath-functions" and the initial context declaration is changed to declare variable $input-context :=xvsfn:doc(...);

Comparison:

The expected results are not changed in any way. The comparison algorithm for positive tests is based on the XQTS Catalog

We use XMLUnit 1.0 for XML and Fragment comparisons and only accept 'identical' comparison results, both 'similar' and 'different' results are reported as failure

For negative tests, differences in error codes are reported as success and the difference is listed as a comment

Other Comments:

DataDirect XQuery 3.0 implements the January 2007 W3C Recommendation

eXist-db

Date:2007-12-12T09:57:18.151+01:00
Test Suite Version:1.0.2
Syntax:XQuery
Transformation:

The following tests have been evaluated against results provided by other XQuery processors.

1
Test nameReference softwareConsidered result
CastAs672Saxon8.9Jtrue

Comparison:

The following tests have required a comparison method different from the standard one.

1
Test nameComparison method
copynamespace-2XML
ForExprType057UnnormalizedText
ForExprType059TextAsXML
ForExprType060TextAsXML
Constr-inscope-1TextAsXML
Constr-inscope-3TextAsXML
Constr-inscope-4TextAsXML

UnnormalizedText : result text nodes are concatenated without introducing (normalized) spaces between them.

TextAsXML : result string is evaluated as if it were XML, then an XML comparison is done.

Other Comments:

The test run took 2026.836 seconds.

Galax

Date:2007-10-17-05:00
Test Suite Version:
Syntax:XQuery

Qexo

Date:2006-12-05
Test Suite Version:1.0.2
Syntax:XQuery

Qizx

Date:Tue Jan 15 16:22:49 GMT+01:00 2008
Test Suite Version:1.0.2
Syntax:XQuery
Transformation:

Queries were run as supplied, except a few which were obviously buggy and therefore fixed.

Some results have been changed when the comparison mode is 'Inspect' to make the test execution reproducible (for example current-date(), current-time() etc.)

The last digit of some numeric results has been modified to accomodate precision issues.

Comparison:

Comparisons as recommended by the guidelines. Whitespace is stripped before comparison in most cases, except when 'preserve' is present in the query.

Other Comments:

Saxon-SA

Date:2006-11-17
Test Suite Version:CVS
Syntax:XQuery
Transformation:

Queries were run as supplied, with no changes made to accommodate the test driver.

A number of bug reports were raised against the test suite; in the following cases corrected results were used rather than the published results: bugs 3790, 3356, 3975.

This run differs from previous submissions in that a new test driver written in Java is used, with a slightly different methodology for comparing results.

Comparison:

XML comparisons are performed by canonicalizing the results using a modified version of James Clark's canonical XML processor The main modification is an option to strip whitespace text nodes; this is used only when necessary, and its use is always noted in a comment in the test results.

Fragment and text comparisons are performed using three separate algorithms, reporting success if any one of them succeeds. First, a simple normalization that removes byte order marks and normalizes line endings, then compares the results byte by byte. Second, referencing the result as an external entity from a wrapped XML document, and performing canonicalization on the resulting document. Thirdly, assembling the fragment in a wrapper element by string concatenation and parsing the result. (This third technique is needed because the second fails on some results due to a bug in the JDK 1.5 XML parser, which has been reported to Sun.)

If the expected result is an error, and the test produces an error, then it is reported as having been run successfully even if the error codes differ. In all cases where the error codes differ from those expected, this is recorded as a comment in the test report.

Other Comments:

Tests of the trivial XQuery embedding have not been run because they would require extra work in the test driver and would prove nothing..

Sedna XML Database System

Date:04/11/2007 16:49
Test Suite Version:1.0.2
Syntax:XQuery
Transformation:

External variables are changed with fn:doc() calls.

Comparison:

Text results are compared without changes. XML and XML Fragment results are compared using SXML comparator implemented in Scheme.

Stylus Studio

Date:2006-09-20
Test Suite Version:1.0
Syntax:XQuery
Comparison:

XML and fragment comparisons are performed by serializing the results, re-parsing them, and using a custom deep-equal like function. This function currently ignores any attribute declaring namespace prefixes as well as text nodes that consist entirely of whitespace placed between element, comment or processing instructions nodes.

Other Comments:

- As internal DTDs are not supported, the test source iddtd.xml has been changed to point to the external iddtd.dtd entity, removing the internal subset

- The test suite has been executed with the 'reduced precision' flag that brings the precision of xs:decimal to 18 digits, xs:float to 8 digits, and xs:double to 17 digits

xbird/open

Date:2006-08-21
Test Suite Version:1.0.0 dev (rev 1.28)
Syntax:XQuery
Transformation:

Input queries have been run without any transformations.

Comparison:

XML: XML comparison is done by using XMLUnit's assertXMLEqual method.

Fragment: Fragment comparisons are performed by preparedly wrapping the reference results with a dummy element node, and the comparison method is same as XML comparison.

Text: Text comparison is done by comparing String equality.

Inspect: Inspect comparison is done by as same as Fragment comparison. But that, only non-failed tests are recorded as "pass", otherwise treated as "not tested". Most Inspect comparation requires human eye checking, so most tests are recorded as "not tested" actually.

Other Comments:

XBird/open is yet under the heavy development and XQTS success rate is improving gradually. The initial release of XBird/open is scheduled at September, 2006. The XBird project is sponsored by Information-technology Promotion Agency (IPA), Japan. Test-cases which require inspections are mostly skipped (denoted as "not tested"). JUnit test cases for each XQuery test cases were generated by own code generator respectively. The detailed results are put on our project site.

X-Hive/DB

Date:2006-10-30+01:00
Test Suite Version:1.0.2
Syntax:XQuery
Transformation:

Input queries have been run without any transformations.

Location hints have been added to schema and module import statements.

Comparison:

Comparison of XML and Fragment results has been done white space ignorant.

xq2xsl

Date:2006-10-26
Test Suite Version:1.0.2 dev
Syntax:XQuery
Transformation:

No transformations are made directly on the XQuery file, however after conversion to XSLT, the parameters corresponding to external $input-context variables are changed from having empty default definitions to having definition "doc(relative/path/to/input/fileas/specified/in/catalogue)".

Comparison:

XML: The result is not serialised. The expected result is parsed using doc() and compared using deep-equal(), if this fails, text nodes are normalized with normalize-space(), then deep-equal() is retried (Use of normalize-space is noted in the comment field in this case).

Fragment: The result is not serialised. The expected result is wrapped in an element node so it can be parsed by am XML parser, the child nodes of this element are then compared using deep-equal (and optionaly normalize-space, as for the XML comparision).

Text: is treated as a synonym for the Fragment comparison

Inspect: If these have been looked at, they are declared pass, otherwise declared not tested.

Errors are currently NOT compared. If (any) error is expected, (any) error raised is considered to be a test pass. (Due to limitations of the test harness: This should be fixed in time for a future version of the test suite.)

Other Comments:

The xq2xsl transformation process is designed to only require a basic XSLT2 engine however the generated XSLT code may require a schema-aware XSLT engine to process some constructs. This test uses the same XSLT engine to transform the Query to XSLT and to execute the generated XSLT. The system used was SAXON 8.8 from Saxonica, for which the value of xsl:is-schema-aware is no.

XQuantum

Date:2007-08-08
Test Suite Version:1.0.2
Syntax:XQuery
Transformation:

External variables are initialized using statements of the form: declare variable $input-context := doc("name.xml");

Comparison:

Test results were compared as specified in the XQTS Guidelines.

Other Comments:

XQuantum supports XQuery over large XML datasets, implements static typing, and includes XQuery full-text extensions. Only test cases that passed static type checking were run. One hundred and eight test cases were found to be statically incorrect and are reported as "not tested" in the test results.

Anonymous

Date:2006-10-30
Test Suite Version:1.0
Syntax:XQueryX
Transformation:

External variables are initialized using statements of the form: declare variable $input-context := doc("name.xml");

Comparison:

XML and fragment comparisons are performed by re-parsing the results with a custom tool, then performing a binary comparison.

xq2xsl

Date:2006-10-26
Test Suite Version:1.0.2 dev
Syntax:XQueryX
Transformation:

This is a trivial xqueryx implementation, simply prepending a call to the normative xqueryx stylesheet onto the test harness used by the xq2xsl XQuery implementation.

Comparison:

XML: The result is not serialised. The expected result is parsed using doc() and compared using deep-equal(), if this fails, text nodes are normalized with normalize-space(), then deep-equal() is retried (Use of normalize-space is noted in the comment field in this case).

Fragment: The result is not serialised. The expected result is wrapped in an element node so it can be parsed by am XML parser, the child nodes of this element are then compared using deep-equal (and optionaly normalize-space, as for the XML comparision).

Text: is treated as a synonym for the Fragment comparison

Inspect: If these have been looked at, they are declared pass, otherwise declared not tested.

Errors are currently NOT compared. If (any) error is expected, (any) error raised is considered to be a test pass. (Due to limitations of the test harness: This should be fixed in time for a future version of the test suite.)

Other Comments:

The xq2xsl transformation process is designed to only require a basic XSLT2 engine however the generated XSLT code may require a schema-aware XSLT engine to process some constructs. This test uses the same XSLT engine to transform the Query to XSLT and to execute the generated XSLT. The system used was SAXON 8.8 from Saxonica, for which the value of xsl:is-schema-aware is no.

Features:

Minimal Conformance
Anglo-DT:   true
BaseX:   not specified
Berkeley DB XML:   true
DataDirect XQuery:   true
eXist-db:   true
Galax:   not specified
Qexo:   not specified
Qizx:   true
Saxon-SA:   true
Sedna XML Database System:   true
Stylus Studio:   true
xbird/open:   true
X-Hive/DB:   true
xq2xsl:   not specified
XQuantum:   not specified
Anonymous:   not specified
xq2xsl:   not specified

Schema Import
Anglo-DT:   true
BaseX:   not specified
Berkeley DB XML:   true
DataDirect XQuery:   false
eXist-db:   false
Galax:   not specified
Qexo:   not specified
Qizx:   false
Saxon-SA:   true
Sedna XML Database System:   false
Stylus Studio:   true
xbird/open:   false
X-Hive/DB:   true
xq2xsl:   false
XQuantum:   not specified
Anonymous:   true
xq2xsl:   false

Schema Validation
Anglo-DT:   true
BaseX:   not specified
Berkeley DB XML:   false
DataDirect XQuery:   false
eXist-db:   false
Galax:   not specified
Qexo:   not specified
Qizx:   false
Saxon-SA:   true
Sedna XML Database System:   false
Stylus Studio:   true
xbird/open:   false
X-Hive/DB:   true
xq2xsl:   false
XQuantum:   not specified
Anonymous:   not specified
xq2xsl:   false

Static Typing
Anglo-DT:   False
BaseX:   not specified
Berkeley DB XML:   false
DataDirect XQuery:   true
eXist-db:   false
Galax:   not specified
Qexo:   not specified
Qizx:   partially
Saxon-SA:   false
Sedna XML Database System:   false
Stylus Studio:   false
xbird/open:   false
X-Hive/DB:   false
xq2xsl:   no
XQuantum:   not specified
Anonymous:   true
xq2xsl:   no

Static Typing Extensions
Anglo-DT:   true
BaseX:   not specified
Berkeley DB XML:   false
DataDirect XQuery:   true
eXist-db:   false
Galax:   not specified
Qexo:   not specified
Qizx:   false
Saxon-SA:   false
Sedna XML Database System:   false
Stylus Studio:   false
xbird/open:   false
X-Hive/DB:   false
xq2xsl:   false
XQuantum:   not specified
Anonymous:   not specified
xq2xsl:   false

Full Axis
Anglo-DT:   true
BaseX:   not specified
Berkeley DB XML:   true
DataDirect XQuery:   true
eXist-db:   true
Galax:   not specified
Qexo:   not specified
Qizx:   true
Saxon-SA:   true
Sedna XML Database System:   true
Stylus Studio:   true
xbird/open:   true
X-Hive/DB:   true
xq2xsl:   true
XQuantum:   not specified
Anonymous:   true
xq2xsl:   true

Module
Anglo-DT:   true
BaseX:   not specified
Berkeley DB XML:   true
DataDirect XQuery:   true
eXist-db:   true
Galax:   not specified
Qexo:   not specified
Qizx:   true
Saxon-SA:   true
Sedna XML Database System:   false
Stylus Studio:   true
xbird/open:   true
X-Hive/DB:   true
xq2xsl:   true
XQuantum:   not specified
Anonymous:   not specified
xq2xsl:   true

Serialization
Anglo-DT:   true
BaseX:   not specified
Berkeley DB XML:   false
DataDirect XQuery:   true
eXist-db:   true
Galax:   not specified
Qexo:   not specified
Qizx:   true
Saxon-SA:   true
Sedna XML Database System:   true
Stylus Studio:   false
xbird/open:   true
X-Hive/DB:   false
xq2xsl:   true
XQuantum:   not specified
Anonymous:   not specified
xq2xsl:   true

Trivial XML Embedding
Anglo-DT:   true
BaseX:   not specified
Berkeley DB XML:   false
DataDirect XQuery:   false
eXist-db:   false
Galax:   not specified
Qexo:   not specified
Qizx:   false
Saxon-SA:   true
Sedna XML Database System:   false
Stylus Studio:   false
xbird/open:   false
X-Hive/DB:   true
xq2xsl:   not specified
XQuantum:   not specified
Anonymous:   not specified
xq2xsl:   not specified

Implementation-defined Items:

[XQuery] The version of Unicode that is used to construct expressions.
Anglo-DT:   not specified
BaseX:   not specified
Berkeley DB XML:   UTF-8
DataDirect XQuery:   Dependent on the Java Virtual Machine
eXist-db:   not specified
Galax:   not specified
Qexo:   not specified
Qizx:   Defined by JVM.
Saxon-SA:   Whatever is supported by the Java JDK in use
Sedna XML Database System:   Unicode 4.0
Stylus Studio:   3.0
xbird/open:   Defined by Java JDK to use.
X-Hive/DB:   defined by Java implementation
xq2xsl:   As used by Test Applet
XQuantum:   not specified
Anonymous:   not specified
xq2xsl:   As used by Test Applet

[XQuery] The statically-known collations.
Anglo-DT:   http://www.w3.org/2005/xpath-functions/collation/codepoint
BaseX:   Limited to 'codepoint collation'
Berkeley DB XML:   not specified
DataDirect XQuery:   Dependent on the Java Virtual Machine
eXist-db:   not specified
Galax:   not specified
Qexo:   not specified
Qizx:   Based on Java collators and locales.
Saxon-SA:   URIs corresponding to RuleBasedCollators that can be constructed by the Java VM, plus any user-defined collations whose implementation is on the Java classpath
Sedna XML Database System:   Only codepoint collation is supported now
Stylus Studio:   All the collations exposed by ICU
xbird/open:   Based on Java collators and locales.
X-Hive/DB:   defined by Java implementation
xq2xsl:   Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica
XQuantum:   not specified
Anonymous:   not specified
xq2xsl:   Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica

[XQuery] The implicit timezone.
Anglo-DT:   Z
BaseX:   Taken from system clock (+02:00)
Berkeley DB XML:   Defined by the system clock
DataDirect XQuery:   System clock based
eXist-db:   not specified
Galax:   not specified
Qexo:   not specified
Qizx:   Can be set through the API. Default is local timezone.
Saxon-SA:   Taken from the system clock. For this test run, +01:00
Sedna XML Database System:   Extracted from local time
Stylus Studio:   Defined by the system clock
xbird/open:   Can be set through the API. Default is local timezone.
X-Hive/DB:   Z
xq2xsl:   Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica
XQuantum:   not specified
Anonymous:   not specified
xq2xsl:   Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica

[XQuery] The circumstances in which warnings are raised, and the ways in which warnings are handled.
Anglo-DT:   Warnings are not raised
BaseX:   No warnings are currently raised
Berkeley DB XML:   not specified
DataDirect XQuery:   Warnings are never raised
eXist-db:   not specified
Galax:   not specified
Qexo:   not specified
Qizx:   Unimplemented features raise warnings.
Saxon-SA:   Controlled using the JAXP-defined ErrorListener interface.
Sedna XML Database System:   Sedna does not raise any warnings at this time
Stylus Studio:   not specified
xbird/open:   Warn method of Apache Commons Logger is called. Users can specify the custom Logger.
X-Hive/DB:   X-Hive doesn't raise warnings at this time
xq2xsl:   Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica
XQuantum:   not specified
Anonymous:   not specified
xq2xsl:   Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica

[XQuery] The method by which errors are reported to the external processing environment.
Anglo-DT:   Errors are thrown as an Cbcl.Xml.XPath2.XPathException. The ErrorCode property contains the error code.
BaseX:   Java exceptions / standard error output
Berkeley DB XML:   not specified
DataDirect XQuery:   Java exceptions
eXist-db:   not specified
Galax:   not specified
Qexo:   not specified
Qizx:   API: Exceptions and list of messages (as per XQJ).
Saxon-SA:   Errors are reported using the JAXP ErrorListener interface.
Sedna XML Database System:   It depends on client API (Java exceptions, return values in C, etc)
Stylus Studio:   Message box
xbird/open:   via Java exceptions.
X-Hive/DB:   via Java exceptions
xq2xsl:   Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica
XQuantum:   not specified
Anonymous:   not specified
xq2xsl:   Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica

[XQuery] Whether the implementation is based on the rules of [XML 1.0] and [XML Names] or the rules of [XML 1.1] and [XML Names 1.1]. One of these sets of rules must be applied consistently by all aspects of the implementation.
Anglo-DT:   XML 1.0
BaseX:   XML 1.0
Berkeley DB XML:   1.0
DataDirect XQuery:   XML 1.0
eXist-db:   not specified
Galax:   not specified
Qexo:   not specified
Qizx:   
Saxon-SA:   XML 1.0 or 1.1 can be selected under user control.
Sedna XML Database System:   XML 1.0
Stylus Studio:   1.1
xbird/open:   XML 1.0.
X-Hive/DB:   XML 1.0
xq2xsl:   Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica
XQuantum:   not specified
Anonymous:   not specified
xq2xsl:   Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica

[XQuery] Any components of the static context or dynamic context that are overwritten or augmented by the implementation.
Anglo-DT:   not specified
BaseX:   not specified
Berkeley DB XML:   not specified
DataDirect XQuery:   Statically known namespaces are augmented
eXist-db:   not specified
Galax:   not specified
Qexo:   not specified
Qizx:   functions, default namespaces, syntax.
Saxon-SA:   None.
Sedna XML Database System:   Added static namespace for Sedna functions
Stylus Studio:   None
xbird/open:   None.
X-Hive/DB:   added static namespace for proprietary xhive functions
xq2xsl:   Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica
XQuantum:   not specified
Anonymous:   not specified
xq2xsl:   Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica

[XQuery] Which of the optional axes are supported by the implementation, if the Full-Axis Feature is not supported.
Anglo-DT:   not specified
BaseX:   All axes supported
Berkeley DB XML:   Full axis support
DataDirect XQuery:   none
eXist-db:   not specified
Galax:   not specified
Qexo:   not specified
Qizx:   all
Saxon-SA:   All the axes are supported.
Sedna XML Database System:   All
Stylus Studio:   Full axis support
xbird/open:   all.
X-Hive/DB:   all
xq2xsl:   all
XQuantum:   not specified
Anonymous:   not specified
xq2xsl:   all

[XQuery] The default handling of empty sequences returned by an ordering key (sortspec) in an order by clause (empty least or empty greatest).
Anglo-DT:   not specified
BaseX:   empty least
Berkeley DB XML:   empty least
DataDirect XQuery:   empty least
eXist-db:   not specified
Galax:   not specified
Qexo:   not specified
Qizx:   empty least
Saxon-SA:   By default, empty collates least.
Sedna XML Database System:   Empty least
Stylus Studio:   empty least
xbird/open:   empty greatest.
X-Hive/DB:   empty greatest
xq2xsl:   empty first
XQuantum:   not specified
Anonymous:   not specified
xq2xsl:   empty first

[XQuery] The names and semantics of any extension expressions (pragmas) recognized by the implementation.
Anglo-DT:   not specified
BaseX:   None
Berkeley DB XML:   not specified
DataDirect XQuery:   Consult DataDirect XQuery User's Guide and Reference
eXist-db:   not specified
Galax:   not specified
Qexo:   not specified
Qizx:   (none)
Saxon-SA:   The saxon:validate-type pragma validates an expression against a named simple or complex type
Sedna XML Database System:   Pragmas are not used currently
Stylus Studio:   None
xbird/open:   Pragmas are not used currently.
X-Hive/DB:   various pragmata for debugging output, especially for index usage & query optimization
xq2xsl:   Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica
XQuantum:   not specified
Anonymous:   not specified
xq2xsl:   Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica

[XQuery] The names and semantics of any option declarations recognized by the implementation.
Anglo-DT:   not specified
BaseX:   None
Berkeley DB XML:   not specified
DataDirect XQuery:   Consult DataDirect XQuery User's Guide and Reference
eXist-db:   not specified
Galax:   not specified
Qexo:   not specified
Qizx:   not specified
Saxon-SA:   saxon:default declares default values for external variables. saxon:memo-function declares functions that are to be implemented as memo-functions. saxon:output declares serialization paraameters. For detailed semantics, see the user documentation.
Sedna XML Database System:   Option for indenting output
Stylus Studio:   None
xbird/open:   Various options with a prefix 'xbird' and a namespace 'http://metabrick.org/xbird' are provided. (e.g. xbird:view function for virtual view feature.)
X-Hive/DB:   various options for debugging output, especially for index usage & query optimization
xq2xsl:   Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica
XQuantum:   not specified
Anonymous:   not specified
xq2xsl:   Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica

[XQuery] Protocols (if any) by which parameters can be passed to an external function, and the result of the function can returned to the invoking query.
Anglo-DT:   not specified
BaseX:   None
Berkeley DB XML:   not specified
DataDirect XQuery:   DataDirect XQuery supports calling Java methods, SQL stored procedures and SQL table functions. Consult DataDirect XQuery User's Guide and Reference for detailed semantics.
eXist-db:   not specified
Galax:   not specified
Qexo:   not specified
Qizx:   'Java binding', see documentation.
Saxon-SA:   Saxon supports calls on external Java methods. There is a plug-in architecture allowing additional external function libraries and binding mechanisms to be supported by third parties.
Sedna XML Database System:   Sedna supports calls on external C functions base on a proprietary protocol
Stylus Studio:   Java extensions are supported, using the namespace URI to locate the class
xbird/open:   Supports calls on external static Java methods. Returned value is mapped to XQuery values. Long is turned into xs:integer.
X-Hive/DB:   X-Hive supports calling Java functions, values returned are interpreted as XQuery types, e.g. BigInteger is turned into a xs:integer
xq2xsl:   Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica
XQuantum:   not specified
Anonymous:   not specified
xq2xsl:   Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica

[XQuery] The process by which the specific modules to be imported by a module import are identified, if the Module Feature is supported (includes processing of location hints, if any.)
Anglo-DT:   not specified
BaseX:   Not supported yet
Berkeley DB XML:   not specified
DataDirect XQuery:   A location hint must be specified. The module must be accessible through http:, ftp:, or file: URI schemes
eXist-db:   not specified
Galax:   not specified
Qexo:   not specified
Qizx:   Pluggable ModuleResolver. Default implementation uses a base URI. Location hints are taken into account.
Saxon-SA:   An actual URI for the location of the module source code must be provided in the import declaration, or via a ModuleURIResolver nominated using the Java API
Sedna XML Database System:   Modules should be preloaded into database using proprietary command. Locations hints are ignored.
Stylus Studio:   The hint is treated as a (relative) URI, and accessed
xbird/open:   If any location hints are provided, use the first one for the importing module location. Otherwise, the target namespace of importing module is used. A module location is expected to be full URIs (e.g. file:// or http://)
X-Hive/DB:   module location hints are expected to be either full URIs (e.g. file:// or http://) or paths within the database collection
xq2xsl:   Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica
XQuantum:   not specified
Anonymous:   not specified
xq2xsl:   Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica

[XQuery] Any static typing extensions supported by the implementation, if the Static Typing Feature is supported.
Anglo-DT:   Rules suggested in http://www.w3.org/Bugs/Public/show_bug.cgi?id=3818, http://www.w3.org/Bugs/Public/show_bug.cgi?id=3784, http://www.w3.org/Bugs/Public/show_bug.cgi?id=3670, http://www.w3.org/Bugs/Public/show_bug.cgi?id=3717. Attributes in axis expressions are also inferred to be zero-or-one.
BaseX:   Not supported yet
Berkeley DB XML:   not specified
DataDirect XQuery:   Consult DataDirect XQuery User's Guide and Reference.
eXist-db:   not specified
Galax:   not specified
Qexo:   not specified
Qizx:   not specified
Saxon-SA:   Saxon does not support strict static typing, although it does report type errors at compile time if they can be detected at compile time.
Sedna XML Database System:   Static typing is not supported now
Stylus Studio:   None
xbird/open:   No extensions.
X-Hive/DB:   none
xq2xsl:   none
XQuantum:   not specified
Anonymous:   not specified
xq2xsl:   none

[XQuery] The means by which serialization is invoked, if the Serialization Feature is supported.
Anglo-DT:   not specified
BaseX:   Serialization to String / standard output
Berkeley DB XML:   not specified
DataDirect XQuery:   DataDirect XQuery implements an XQJ early draft, which gives full access to the serialization options. Consult DataDirect XQuery User's Guide and Reference.
eXist-db:   not specified
Galax:   not specified
Qexo:   not specified
Qizx:   extension function, API
Saxon-SA:   Saxon supports a Java API that gives full access to serialization, reusing parts of the JAXP API where appropriate.
Sedna XML Database System:   Results are serialized to standard output or to string supported by the language of client application (Java string, C string, etc.)
Stylus Studio:   Not supported
xbird/open:   Provides Java APIs for giving accesses to serialization. Besides default Serialization is provided for Sequence result through toString() method.
X-Hive/DB:   results are serialized to Java Strings using the toString() method of the returned Java objects
xq2xsl:   Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica
XQuantum:   not specified
Anonymous:   not specified
xq2xsl:   Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica

[XQuery] The default values for the byte-order-mark, encoding, media-type, normalization-form, omit-xml-declaration, standalone, and version parameters, if the Serialization Feature is supported.
Anglo-DT:   not specified
BaseX:   Adjustable
Berkeley DB XML:   not specified
DataDirect XQuery:   XQuery defaults. Consult DataDirect XQuery User's Guide and Reference.
eXist-db:   not specified
Galax:   not specified
Qexo:   not specified
Qizx:   See x:serialize() function in documentation.
Saxon-SA:   As described in the XQuery specification (but if running from the command line, indent=yes is set by default)
Sedna XML Database System:   no, utf-8, none, normalization is not performed, no, yes, 1.0
Stylus Studio:   Not supported
xbird/open:   As specified in Appendix C.3 of the XQuery specification. byte-order-mark: no, encoding: utf-8, normalization-form: NFC, omit-xml-declaration: no, standalone: no, version: 1.0.
X-Hive/DB:   does not apply
xq2xsl:   Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica
XQuantum:   not specified
Anonymous:   not specified
xq2xsl:   Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica

[XQuery] The result of an unsuccessful call to an external function (for example, if the function implementation cannot be found or does not return a value of the declared type).
Anglo-DT:   not specified
BaseX:   Dynamic error
Berkeley DB XML:   not specified
DataDirect XQuery:   not specified
eXist-db:   not specified
Galax:   not specified
Qexo:   not specified
Qizx:   dynamic error
Saxon-SA:   not specified
Sedna XML Database System:   not specified
Stylus Studio:   An error is raised
xbird/open:   not specified
X-Hive/DB:   not specified
xq2xsl:   not specified
XQuantum:   not specified
Anonymous:   not specified
xq2xsl:   not specified

[XQuery] Limits on ranges of values for various data types, as enumerated in 5.3 Data Model Conformance.
Anglo-DT:   xs:decimal, xs:integer -79228162514264337593543950335 to 79228162514264337593543950335. xs:float -3.402823E+38 to 3.402823E+38. xs:double -1.79769313486232E+308 to 1.79769313486232E+308.
BaseX:   Currently: 64 bits for xs:decimal and xs:integer
Berkeley DB XML:   not specified
DataDirect XQuery:   Consult DataDirect XQuery User's Guide and Reference.
eXist-db:   not specified
Galax:   not specified
Qexo:   not specified
Qizx:   xs:integer on 64 bits
Saxon-SA:   Documented in the detailed conformance documentation
Sedna XML Database System:   not specified
Stylus Studio:   All numbers are represented using a decimal (not binary) representation (xs:float and xs:double -> 25 digits; xs:decimal -> 50 digits); date and duration types -> the type is stored in a single xs:decimal value, with its 50 digits accuracy; xs:string and other type: limited by available memory
xbird/open:   For the xs:decimal type: java.math.BigDecimal is used (unlimited). For the types xs:date, xs:time, xs:dateTime, xs:gYear, and xs:gYearMonth: javax.xml.datatype.XMLGregorianCalendar is used. For the types xs:duration, xs:yearMonthDuration, and dayTimeDuration : javax.xml.datatype.Duration is used. For the types xs:string, xs:hexBinary, xs:base64Binary, xs:QName, xs:anyURI, xs:NOTATION: no limitation on lengths of values.
X-Hive/DB:   not specified
xq2xsl:   not specified
XQuantum:   not specified
Anonymous:   not specified
xq2xsl:   not specified

[FuncOps] The destination of the trace output is implementation-defined. See 4 The Trace Function.
Anglo-DT:   not specified
BaseX:   Internally processed
Berkeley DB XML:   not specified
DataDirect XQuery:   Sent as text to Java's System.err
eXist-db:   not specified
Galax:   not specified
Qexo:   not specified
Qizx:   Depends on configuration.
Saxon-SA:   If a TraceListener is registered, the trace output is sent to the TraceListener. Otherwise it is sent as text to System.err.
Sedna XML Database System:   Destination can be defined as output stream in API.
Stylus Studio:   Output window
xbird/open:   Depends on Logger settings. Default output destination is stdout.
X-Hive/DB:   the destination can be either 'stdout' or 'stderr'
xq2xsl:   Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica
XQuantum:   not specified
Anonymous:   not specified
xq2xsl:   Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica

[FuncOps] For xs:integer operations, implementations that support limited-precision integer operations must either raise an error [err:FOAR0002] or provide an implementation-defined mechanism that allows users to choose between raising an error and returning a result that is modulo the largest representable integer value. See 6.2 Operators on Numeric Values.
Anglo-DT:   err:FOAR0002 is raised.
BaseX:   not specified
Berkeley DB XML:   not specified
DataDirect XQuery:   DataDirect XQuery supports unlimited-precision integer arithmetic
eXist-db:   not specified
Galax:   not specified
Qexo:   not specified
Qizx:   error raised
Saxon-SA:   Saxon supports unlimited-precision integer arithmetic
Sedna XML Database System:   not specified
Stylus Studio:   Results exceeding the given precision are rounded
xbird/open:   Raises an error [err:FOAR0002].
X-Hive/DB:   not specified
xq2xsl:   not specified
XQuantum:   not specified
Anonymous:   not specified
xq2xsl:   not specified

[FuncOps] For xs:decimal values the number of digits of precision returned by the numeric operators is implementation-defined. See 6.2 Operators on Numeric Values. See also 17.1.3.3 Casting to xs:decimal and 17.1.3.4 Casting to xs:integer.
Anglo-DT:   not specified
BaseX:   not specified
Berkeley DB XML:   not specified
DataDirect XQuery:   DataDirect XQuery supports unlimited-precision decimal arithmetic
eXist-db:   not specified
Galax:   not specified
Qexo:   not specified
Qizx:   not limited.
Saxon-SA:   Saxon implements arbitrary-precision decimal arithmetic. The default precision for division is 18 digits, but this is configurable.
Sedna XML Database System:   not specified
Stylus Studio:   Results exceeding the given precision are rounded
xbird/open:   Supports arbitrary-precision decimal representation.
X-Hive/DB:   X-Hive currently supports 20 decimal digits when converting decimals to a string representation
xq2xsl:   Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica
XQuantum:   not specified
Anonymous:   not specified
xq2xsl:   Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica

[FuncOps] If the number of digits in the result exceeds the number of digits that the implementation supports, the result is truncated or rounded in an implementation-defined manner. See 6.2 Operators on Numeric Values. See also 17.1.3.3 Casting to xs:decimal and 17.1.3.4 Casting to xs:integer.
Anglo-DT:   not specified
BaseX:   not specified
Berkeley DB XML:   not specified
DataDirect XQuery:   Not applicable as DataDirect XQuery implements unlimited precision
eXist-db:   not specified
Galax:   not specified
Qexo:   not specified
Qizx:   not specified
Saxon-SA:   Not applicable, since Saxon supports indefinite precision.
Sedna XML Database System:   not specified
Stylus Studio:   Round
xbird/open:   The result is rounded by casting.
X-Hive/DB:   the result is rounded
xq2xsl:   Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica
XQuantum:   not specified
Anonymous:   not specified
xq2xsl:   Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica

[FuncOps] It is implementation-defined which version of Unicode is supported by the features defined in this specification, but it is recommended that the most recent version of Unicode be used. See 7.1 String Types.
Anglo-DT:   not specified
BaseX:   not specified
Berkeley DB XML:   not specified
DataDirect XQuery:   XML 1.0 based
eXist-db:   not specified
Galax:   not specified
Qexo:   not specified
Qizx:   As supported by JVM used.
Saxon-SA:   Saxon validates that characters in strings and names are as permitted by XML 1.0 (or XML 1.1 at user option), unless the value has already been validated by an XML parser, in which case it depends on the user's choice of parser.
Sedna XML Database System:   not specified
Stylus Studio:   3.0
xbird/open:   Depends on the user's choice of XML parser.
X-Hive/DB:   The XQuery parser validates according to XML 1.0
xq2xsl:   Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica
XQuantum:   not specified
Anonymous:   not specified
xq2xsl:   Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica

[FuncOps] For 7.4.6 fn:normalize-unicode, conforming implementations must support normalization form "NFC" and may support normalization forms "NFD", "NFKC", "NFKD", "FULLY-NORMALIZED". They may also support other normalization forms with implementation-defined semantics.
Anglo-DT:   NFC, NFD, NFKC, NFKD
BaseX:   not specified
Berkeley DB XML:   NFC, NFD, NFKC, NFKD
DataDirect XQuery:   NFC, NFD, NFKC, and NFKD
eXist-db:   not specified
Galax:   not specified
Qexo:   not specified
Qizx:   not specified
Saxon-SA:   Saxon supports NFC, NFD, NFKC, and NFKD.
Sedna XML Database System:   not specified
Stylus Studio:   NFC, NFD, NFKC, NFKD
xbird/open:   Supports NFC, NFD, NFKC, and NFKD/FULLY-NORMALIZED.
X-Hive/DB:   NFC, NFD, NFKC, NFKD
xq2xsl:   Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica
XQuantum:   not specified
Anonymous:   not specified
xq2xsl:   Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica

[FuncOps] The ability to decompose strings into collation units suitable for substring matching is an implementation-defined property of a collation. See 7.5 Functions Based on Substring Matching.
Anglo-DT:   not specified
BaseX:   Depends on Java
Berkeley DB XML:   not specified
DataDirect XQuery:   Dependent on the Java Virtual Machine
eXist-db:   not specified
Galax:   not specified
Qexo:   not specified
Qizx:   Supported by Java collators.
Saxon-SA:   All collations based on Java's RuleBasedCollator have this property. User-defined collations may or may not have this property.
Sedna XML Database System:   Collations are not supported now
Stylus Studio:   
xbird/open:   Depends on Java collators. Collation based on Java RuleBasedCollator have this property.
X-Hive/DB:   depends on Java collations
xq2xsl:   Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica
XQuantum:   not specified
Anonymous:   not specified
xq2xsl:   Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica

[FuncOps] All minimally conforming processors must support year values with a minimum of 4 digits (i.e., YYYY) and a minimum fractional second precision of 1 millisecond or three digits (i.e., s.sss). However, conforming processors may set larger implementation-defined limits on the maximum number of digits they support in these two situations. See 10.1.1 Limits and Precision.
Anglo-DT:   not specified
BaseX:   Years may have more than 4 digits; doubles are used for milliseconds
Berkeley DB XML:   not specified
DataDirect XQuery:   DataDirect XQuery supports 4 digits for the year and 6 digits for fractional seconds
eXist-db:   not specified
Galax:   not specified
Qexo:   not specified
Qizx:   seconds are represented as double, years may exceed 4 digits.
Saxon-SA:   Saxon supports 4 digits for the year and 6 digits for fractional seconds on dateTimes and durations.
Sedna XML Database System:   not specified
Stylus Studio:   At least 40 digits
xbird/open:   Supports Integer value for the year and fractional seconds on durations. They are defined by javax.xml.datatype.XMLGregorianCalendar and javax.xml.datatype.Duration respectively.
X-Hive/DB:   X-Hive supports nanosecond-precision
xq2xsl:   Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica
XQuantum:   not specified
Anonymous:   not specified
xq2xsl:   Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica

[FuncOps] The result of casting a string to xs:decimal, when the resulting value is not too large or too small but nevertheless has too many decimal digits to be accurately represented, is implementation-defined. See 17.1.1 Casting from xs:string and xs:untypedAtomic.
Anglo-DT:   not specified
BaseX:   not specified
Berkeley DB XML:   not specified
DataDirect XQuery:   not specified
eXist-db:   not specified
Galax:   not specified
Qexo:   not specified
Qizx:   decimal numbers have unlimited precision.
Saxon-SA:   not specified
Sedna XML Database System:   not specified
Stylus Studio:   Rounded at given precision
xbird/open:   not specified
X-Hive/DB:   not specified
xq2xsl:   not specified
XQuantum:   not specified
Anonymous:   not specified
xq2xsl:   not specified

[FuncOps] Various aspects of the processing provided by 15.5.4 fn:doc are implementation-defined. Implementations may provide external configuration options that allow any aspect of the processing to be controlled by the user.
Anglo-DT:   not specified
BaseX:   Documents can be processed on the fly or as database instances
Berkeley DB XML:   dtd validation
DataDirect XQuery:   The fn:doc function can access any XML document through http:, ftp:, and file: URI schemes
eXist-db:   not specified
Galax:   not specified
Qexo:   not specified
Qizx:   not specified
Saxon-SA:   If the standard URIResolver is used, this is as defined by the implementation of class java.net.URL in the Java VM.
Sedna XML Database System:   fn:doc() is used to access documents within the database
Stylus Studio:   URI protocols supported are the one available inside Stylus Studio (file, http, https, ftp, adapters, db and custom protocols provided by the user); non-XML media types are supported if accessed using an adapter protocol; DTD and XMLSchema validation are applied, but internal DTDs are not supported; errors occurring during parsing are fatal; results are always stable
xbird/open:   Defined by the implementation of java.net.URL class of Java JDK.
X-Hive/DB:   fn:doc() is usually used to access documents within the database. On importing those documents, all features can be configured using the DOM Level3 API
xq2xsl:   not specified
XQuantum:   not specified
Anonymous:   not specified
xq2xsl:   not specified

[FuncOps] The manner in which implementations provide options to weaken the stable characteristic of 15.5.6 fn:collection and 15.5.4 fn:doc are implementation-defined.
Anglo-DT:   not specified
BaseX:   not specified
Berkeley DB XML:   not specified
DataDirect XQuery:   not specified
eXist-db:   not specified
Galax:   not specified
Qexo:   not specified
Qizx:   not specified
Saxon-SA:   not specified
Sedna XML Database System:   not specified
Stylus Studio:   Not available
xbird/open:   not specified
X-Hive/DB:   not specified
xq2xsl:   not specified
XQuantum:   not specified
Anonymous:   not specified
xq2xsl:   not specified

[DataModel] Support for additional user-defined or implementation-defined types is implementation-defined. (See 2.6.1 Representation of Types)
Anglo-DT:   not specified
BaseX:   not specified
Berkeley DB XML:   not specified
DataDirect XQuery:   ddtek:JavaObject, used to represent Java Objects in the XDM.
eXist-db:   not specified
Galax:   not specified
Qexo:   not specified
Qizx:   wrapped Java objects
Saxon-SA:   Saxon allows any Java object to be wrapped as an XPath item, and defines a mapping of Java class names to XPath type names so that such objects carry full dynamic type information with them.
Sedna XML Database System:   There are no additional user-defined or implementation-defined types in Sedna
Stylus Studio:   None
xbird/open:   Allows any Java object to be wrapped as an Item.
X-Hive/DB:   X-Hive supports the use of Java objects within XQuery. Java objects are transformed to the XQuery data model.
xq2xsl:   Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica
XQuantum:   not specified
Anonymous:   not specified
xq2xsl:   Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica

[DataModel] Some typed values in the data model are undefined. Attempting to access an undefined property is always an error. Behavior in these cases is implementation-defined and the host language is responsible for determining the result. (See 5 Accessors)
Anglo-DT:   not specified
BaseX:   not specified
Berkeley DB XML:   not specified
DataDirect XQuery:   Access to undefined values is an error.
eXist-db:   not specified
Galax:   not specified
Qexo:   not specified
Qizx:   not specified
Saxon-SA:   Access to undefined values is an error.
Sedna XML Database System:   not specified
Stylus Studio:   None
xbird/open:    Access to undefined values is an error.
X-Hive/DB:   Access to undefined values is an error.
xq2xsl:   Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica
XQuantum:   not specified
Anonymous:   not specified
xq2xsl:   Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica

[Serialization] For any implementation-defined output method, it is implementation-defined whether sequence normalization process takes place. (See 2 Sequence Normalization)
Anglo-DT:   not specified
BaseX:   Normalized / accessable as Java object
Berkeley DB XML:   not specified
DataDirect XQuery:   Not applicable, DataDirect XQuery doesn't support any implementation-defined output method.
eXist-db:   not specified
Galax:   not specified
Qexo:   not specified
Qizx:   none
Saxon-SA:   Sequences are always normalized to documents before the serializer is invoked. However, the Java application may change the way in which a result sequence is converted to a document before invoking the serializer.
Sedna XML Database System:   Only steps 1 and 2 Sequence Normalization are performed
Stylus Studio:   not specified
xbird/open:   Sequences are returned as Java Iterators, and Serialization is left to the user though a default toString() method is provided.
X-Hive/DB:   Sequences are returned as Java Iterators over an X-Hive specific mapping of the XQuery type system to a Java object hierarchy. Serialization is left to the user, though a default toString() method is provided and returned XML nodes implement org.w3c.dom.Node, so they can be used with DOM serializers.
xq2xsl:   Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica
XQuantum:   not speci