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 Feature BaseX Berkeley DB XML
(unspecified)DataDirect XQuery eXist-db Galax
(unspecified)MarkLogic Server Qexo Qizx Saxon-SA
(XQTS CVS)Sedna XML Database System Stylus Studio
(XQTS 1.0)xbird/open
(XQTS 1.0.0 dev (rev 1.28))X-Hive/DB xq2xsl
(XQTS 1.0.2 dev)XQSharp
(XQTS CVS)XQuantum Anonymous
(XQTS 1.0)xq2xsl
(XQTS 1.0.2 dev)XQSharp
(XQTS CVS)Summary Minimal Conformance 14628 / 9 / 14637
99.9%14566 / 42 / 14637
99.5%14593 / 0 / 14637
99.7%14544 / 93 / 14637
99.4%14555 / 69 / 14637
99.4%14623 / 10 / 14637
99.9%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%14629 / 1 / 14637
99.9%14378 / 144 / 14637
98.2%13813 / 538 / 14388
96%14275 / 85 / 14388
99.2%14354 / 1 / 14388
99.8%1/19 Optional Features Schema Import Feature 0 / 0 / 174 117 / 3 / 174 0 / 0 / 174 0 / 0 / 174 0 / 0 / 174 173 / 1 / 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 172 / 2 / 174 0 / 0 / 174 102 / 72 / 174 0 / 0 / 174 172 / 2 / 174 2/19 Schema Validation Feature 0 / 0 / 25 0 / 0 / 25 0 / 0 / 25 0 / 0 / 25 0 / 0 / 25 25 / 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 25 / 0 / 25 0 / 0 / 25 22 / 3 / 25 0 / 0 / 25 25 / 0 / 25 6/19 Static Typing Feature 46 / 0 / 46 0 / 0 / 46 46 / 0 / 46 0 / 0 / 46 46 / 0 / 46 0 / 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 46 / 0 / 46 45 / 1 / 46 0 / 0 / 46 46 / 0 / 46 8/19 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 130 / 0 / 130 0 / 0 / 130 130 / 0 / 130 130 / 0 / 130 130 / 0 / 130 18/19 Module Feature 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 32 / 0 / 32 17 / 15 / 32 28 / 4 / 32 30 / 2 / 32 32 / 0 / 32 0 / 0 / 32 0 / 31 / 31 29 / 2 / 31 31 / 0 / 31 12/19 Trivial XML Embedding Feature 0 / 0 / 4 0 / 0 / 4 0 / 0 / 4 0 / 0 / 4 0 / 0 / 4 4 / 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 / 0 / 4 0 / 4 / 4 0 / 0 / 4 0 / 0 / 4 2/19
BaseX
Organization: Christian Gruen; DBIS Group, University of Konstanz
http://www.basex.org/Implementation: BaseX Version: 5.0 Berkeley DB XML
Organization: Oracle
http://www.sleepycat.comImplementation: Berkeley DB XML Version: Oracle: Berkeley DB XML 2.3.8: (December 8, 2006) DataDirect XQuery
Organization: DataDirect Technologies
http://www.datadirect.com/xqueryImplementation: DataDirect XQuery Version: 3.0 eXist-db
Organization: eXist Open Source Native XML database
http://www.exist-db.orgImplementation: eXist-db Version: 1.1.2dev (revision 7056 20071212) Galax
Organization: Galax Team
http://www.galaxquery.orgImplementation: Galax Version: 1.0.0 MarkLogic Server
Organization: Mark Logic Corporation
http://marklogic.comImplementation: MarkLogic Server Version: 4.0-1 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.comImplementation: Saxon-SA Version: 8.7.3.1 Sedna XML Database System
Organization: Sedna Team, Institute for System Programming RAS
http://modis.ispras.ru/sednaImplementation: Sedna XML Database System Version: 2.0 Stylus Studio
Organization: Stylus Studio
http://www.stylusstudio.comImplementation: 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.comImplementation: X-Hive/DB Version: 8.0 xq2xsl
Organization: David Carlisle
http://monet.nag.co.uk/xq2xmlImplementation: xq2xsl Version: 20061026 XQSharp
Organization: Clinical & Biomedical Computing Limited
http://www.xqsharp.comImplementation: XQSharp Version: 0.9.3225.34013 XQuantum
Organization: Cognetic Systems, Inc.
http://www.cogneticsystems.comImplementation: XQuantum Version: 1.5 xq2xsl
Organization: David Carlisle
http://monet.nag.co.uk/xq2xmlImplementation: xq2xsl Version: 20061026 XQSharp
Organization: Clinical & Biomedical Computing Limited
http://www.xqsharp.comImplementation: XQSharp Version: 0.9.3225.34013
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, and the order of some namespace attributes was changed.
Other Comments: The test run takes appr. 28 seconds (Intel Dual Core, 2.0 GHz, 2 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 name Reference software Considered result CastAs672 Saxon8.9J true Comparison: The following tests have required a comparison method different from the standard one.
1
Test name Comparison method copynamespace-2 XML ForExprType057 UnnormalizedText ForExprType059 TextAsXML ForExprType060 TextAsXML Constr-inscope-1 TextAsXML Constr-inscope-3 TextAsXML Constr-inscope-4 TextAsXML 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 MarkLogic Server
Date: 2008-10-15-05:00 Test Suite Version: 1.0.2 Syntax: XQuery Transformation: Tests in the ModuleImport group were modified to add a location hint to the import declaration.
DTDs are not supported. An XML Schema equivalent to the DTD definitions in iddtd.xml was created and placed in scope.
Comparison: A variety of techniques are used for comparison, depending on the expected result type. These include string comparison, string comparison with boundary space normalization, iterative sequence comparison and deep-equal. Occurrences of cr and cr/lf in text nodes are considered to be equivalent for comparison. Hexadecimal numeric entities are considered to be equal to their decimal counterparts.
For negative tests that throw an exception, any exception is accepted as success.
Other Comments: For the test run, timezone was set to -PT5H by the test driver to accommodate timezone-sensitive test cases.
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.
XQSharp
Date: 2008-10-31Z Test Suite Version: CVS Syntax: XQuery Transformation: External variable declarations bound to documents are modified in queries. Where the query imports a schema matching the document, the declared type of the external variable is changed to document-node(schema-element(name)), where name is the name of the root document node. If no schema is imported matching the document, then the declared type is set to document-node(element(*, xs:untyped)). This is to aid static typing.
Any input URIs are prefixed with "xqts:///", and the related external variables are rewritten with declared type xs:anyURI.
Only tests in the test group "StaticTyping" are run with Static Typing Feature enabled.
Comparison: Text and fragment comparisons are made by wrapping the results in an element named "doc"and comparing the results as par the "XML" comparison mode.
Other Comments: The test suite run took 46.164 seconds.
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.
XQSharp
Date: 2008-10-31Z Test Suite Version: CVS Syntax: XQueryX Transformation: External variable declarations bound to documents are modified in queries. Where the query imports a schema matching the document, the declared type of the external variable is changed to document-node(schema-element(name)), where name is the name of the root document node. If no schema is imported matching the document, then the declared type is set to document-node(element(*, xs:untyped)). This is to aid static typing.
Any input URIs are prefixed with "xqts:///", and the related external variables are rewritten with declared type xs:anyURI.
Only tests in the test group "StaticTyping" are run with Static Typing Feature enabled.
Comparison: Text and fragment comparisons are made by wrapping the results in an element named "doc"and comparing the results as par the "XML" comparison mode.
Other Comments: The test suite run took 115.3 seconds.
Minimal Conformance
BaseX: not specified Berkeley DB XML: true DataDirect XQuery: true eXist-db: true Galax: not specified MarkLogic Server: true 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 XQSharp: true XQuantum: not specified Anonymous: not specified xq2xsl: not specified XQSharp: true Schema Import
BaseX: not specified Berkeley DB XML: true DataDirect XQuery: false eXist-db: false Galax: not specified MarkLogic Server: true 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 XQSharp: true XQuantum: not specified Anonymous: true xq2xsl: false XQSharp: true Schema Validation
BaseX: not specified Berkeley DB XML: false DataDirect XQuery: false eXist-db: false Galax: not specified MarkLogic Server: true 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 XQSharp: true XQuantum: not specified Anonymous: not specified xq2xsl: false XQSharp: true Static Typing
BaseX: not specified Berkeley DB XML: false DataDirect XQuery: true eXist-db: false Galax: not specified MarkLogic Server: false 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 XQSharp: true XQuantum: not specified Anonymous: true xq2xsl: no XQSharp: true Static Typing Extensions
BaseX: not specified Berkeley DB XML: false DataDirect XQuery: true eXist-db: false Galax: not specified MarkLogic Server: true 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 XQSharp: true XQuantum: not specified Anonymous: not specified xq2xsl: false XQSharp: true Full Axis
BaseX: not specified Berkeley DB XML: true DataDirect XQuery: true eXist-db: true Galax: not specified MarkLogic Server: true 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 XQSharp: true XQuantum: not specified Anonymous: true xq2xsl: true XQSharp: true Module
BaseX: not specified Berkeley DB XML: true DataDirect XQuery: true eXist-db: true Galax: not specified MarkLogic Server: true 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 XQSharp: true XQuantum: not specified Anonymous: not specified xq2xsl: true XQSharp: true Serialization
BaseX: not specified Berkeley DB XML: false DataDirect XQuery: true eXist-db: true Galax: not specified MarkLogic Server: true 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 XQSharp: true XQuantum: not specified Anonymous: not specified xq2xsl: true XQSharp: true Trivial XML Embedding
BaseX: not specified Berkeley DB XML: false DataDirect XQuery: false eXist-db: false Galax: not specified MarkLogic Server: true 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 XQSharp: false XQuantum: not specified Anonymous: not specified xq2xsl: not specified XQSharp: false
[XQuery] The version of Unicode that is used to construct expressions.
BaseX: not specified Berkeley DB XML: UTF-8 DataDirect XQuery: Dependent on the Java Virtual Machine eXist-db: not specified Galax: not specified MarkLogic Server: 5.0 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 XQSharp: not specified XQuantum: not specified Anonymous: not specified xq2xsl: As used by Test Applet XQSharp: not specified [XQuery] The statically-known collations.
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 MarkLogic Server: Collations exposed by ICU, plus codepoint 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 XQSharp: http://www.w3.org/2005/xpath-functions/collation/codepoint (can be augmented by API) XQuantum: not specified Anonymous: not specified xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica XQSharp: http://www.w3.org/2005/xpath-functions/collation/codepoint (can be augmented by API) [XQuery] The implicit timezone.
BaseX: Taken from system clock Berkeley DB XML: Defined by the system clock DataDirect XQuery: System clock based eXist-db: not specified Galax: not specified MarkLogic Server: Defaults to platform timezone, may be set per-request for XCC connections 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 XQSharp: Z. Can be overridden through the API. XQuantum: not specified Anonymous: not specified xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica XQSharp: Z. Can be overridden through the API. [XQuery] The circumstances in which warnings are raised, and the ways in which warnings are handled.
BaseX: No warnings are currently raised Berkeley DB XML: not specified DataDirect XQuery: Warnings are never raised eXist-db: not specified Galax: not specified MarkLogic Server: Written to log file 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 XQSharp: Warnings are raised for unused variables and arguments, typeswitch cases that are never reachable, function calls that will always raise an error (with the exception of fn:error), XPST0005 errors (when not running with the Static Typing Feature enabled), unrecognised options, and mismatched encoding declarations. These are passed to a user-defined handler. XQuantum: not specified Anonymous: not specified xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica XQSharp: Warnings are raised for unused variables and arguments, typeswitch cases that are never reachable, function calls that will always raise an error (with the exception of fn:error), XPST0005 errors (when not running with the Static Typing Feature enabled), unrecognised options, and mismatched encoding declarations. These are passed to a user-defined handler. [XQuery] The method by which errors are reported to the external processing environment.
BaseX: Java exceptions / standard error output Berkeley DB XML: not specified DataDirect XQuery: Java exceptions eXist-db: not specified Galax: not specified MarkLogic Server: Request is terminated and an XML error report is produced 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 XQSharp: Errors are thrown as an XQSharp.XPathException. Alternatively errors can be logged, allowing for multiple errors to be reported. XQuantum: not specified Anonymous: not specified xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica XQSharp: Errors are thrown as an XQSharp.XPathException. Alternatively errors can be logged, allowing for multiple errors to be reported. [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.
BaseX: XML 1.0 Berkeley DB XML: 1.0 DataDirect XQuery: XML 1.0 eXist-db: not specified Galax: not specified MarkLogic Server: 1.0 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 XQSharp: XML 1.0 XQuantum: not specified Anonymous: not specified xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica XQSharp: XML 1.0 [XQuery] Any components of the static context or dynamic context that are overwritten or augmented by the implementation.
BaseX: not specified Berkeley DB XML: not specified DataDirect XQuery: Statically known namespaces are augmented eXist-db: not specified Galax: not specified MarkLogic Server: Added static namespaces for Mark Logic builtin functions and types, default function namespace for library modules is the module namespace 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 XQSharp: not specified XQuantum: not specified Anonymous: not specified xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica XQSharp: not specified [XQuery] Which of the optional axes are supported by the implementation, if the Full-Axis Feature is not supported.
BaseX: All axes supported Berkeley DB XML: Full axis support DataDirect XQuery: none eXist-db: not specified Galax: not specified MarkLogic Server: All axes are supported 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 XQSharp: All. XQuantum: not specified Anonymous: not specified xq2xsl: all XQSharp: All. [XQuery] The default handling of empty sequences returned by an ordering key (sortspec) in an order by clause (empty least or empty greatest).
BaseX: empty least Berkeley DB XML: empty least DataDirect XQuery: empty least eXist-db: not specified Galax: not specified MarkLogic Server: Empty last 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 XQSharp: The default is "empty greatest", but this can be overridden. XQuantum: not specified Anonymous: not specified xq2xsl: empty first XQSharp: The default is "empty greatest", but this can be overridden. [XQuery] The names and semantics of any extension expressions (pragmas) recognized by the implementation.
BaseX: None Berkeley DB XML: not specified DataDirect XQuery: Consult DataDirect XQuery User's Guide and Reference eXist-db: not specified Galax: not specified MarkLogic Server: no pragmas currently defined 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 XQSharp: None. XQuantum: not specified Anonymous: not specified xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica XQSharp: None. [XQuery] The names and semantics of any option declarations recognized by the implementation.
BaseX: None Berkeley DB XML: not specified DataDirect XQuery: Consult DataDirect XQuery User's Guide and Reference eXist-db: not specified Galax: not specified MarkLogic Server: xdmp:mapping enables/disables mapping functions over sequences 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 XQSharp: An option declaration is used to declare serialization settings, see http://www.xqsharp.com/xqsharp/extensions.htm#serialization for more information. XQuantum: not specified Anonymous: not specified xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica XQSharp: An option declaration is used to declare serialization settings, see http://www.xqsharp.com/xqsharp/extensions.htm#serialization for more information. [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.
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 MarkLogic Server: User-provided external functions are not currently supported 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 XQSharp: None (currently). XQuantum: not specified Anonymous: not specified xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica XQSharp: None (currently). [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.)
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 MarkLogic Server: Location hint is required and used to locate imported module. The location hint is taken to be relative to the URI of the current module, or relative to the appserver root if it is absolute. 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 XQSharp: All location hints are read from a module import statement, and all modules are imported in the query. It is possible for different library modules to import different subsets of the same library. XQuantum: not specified Anonymous: not specified xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica XQSharp: All location hints are read from a module import statement, and all modules are imported in the query. It is possible for different library modules to import different subsets of the same library. [XQuery] Any static typing extensions supported by the implementation, if the Static Typing Feature is supported.
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 MarkLogic Server: The Static Typing feature is not supported 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 XQSharp: Many extensions to standard rules in Formal Semantics. XQuantum: not specified Anonymous: not specified xq2xsl: none XQSharp: Many extensions to standard rules in Formal Semantics. [XQuery] The means by which serialization is invoked, if the Serialization Feature is supported.
BaseX: SAX/Iterator/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 MarkLogic Server: Specific serialization style depends on the appserver running the request (connection method) 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 XQSharp: XQSharp provides a .NET API giving full access to all serialization options. Serialization options can also be declared using an option declaration, see http://www.xqsharp.com/xqsharp/extensions.htm#serialization for more information. XQuantum: not specified Anonymous: not specified xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica XQSharp: XQSharp provides a .NET API giving full access to all serialization options. Serialization options can also be declared using an option declaration, see http://www.xqsharp.com/xqsharp/extensions.htm#serialization for more information. [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.
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 MarkLogic Server: An XML declaration is never included, encoding is user-selectable (default UTF-8, no BOM) 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 XQSharp: Default serialization values are specified at http://www.xqsharp.com/xqsharp/extensions.htm#serialization XQuantum: not specified Anonymous: not specified xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica XQSharp: Default serialization values are specified at http://www.xqsharp.com/xqsharp/extensions.htm#serialization [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).
BaseX: Dynamic error Berkeley DB XML: not specified DataDirect XQuery: not specified eXist-db: not specified Galax: not specified MarkLogic Server: Not currently supported 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 XQSharp: not specified XQuantum: not specified Anonymous: not specified xq2xsl: not specified XQSharp: not specified [XQuery] Limits on ranges of values for various data types, as enumerated in 5.3 Data Model Conformance.
BaseX: 64 bits for xs:integer Berkeley DB XML: not specified DataDirect XQuery: Consult DataDirect XQuery User's Guide and Reference. eXist-db: not specified Galax: not specified MarkLogic Server: Integers are 64 bits, limits are as determined by the platform C math library 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 XQSharp: 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. XQuantum: not specified Anonymous: not specified xq2xsl: not specified XQSharp: 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. [FuncOps] The destination of the trace output is implementation-defined. See 4 The Trace Function.
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 MarkLogic Server: Standard log file 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 XQSharp: An event is raised when a trace call is evaluated. XQuantum: not specified Anonymous: not specified xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica XQSharp: An event is raised when a trace call is evaluated. [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.
BaseX: not specified Berkeley DB XML: not specified DataDirect XQuery: DataDirect XQuery supports unlimited-precision integer arithmetic eXist-db: not specified Galax: not specified MarkLogic Server: Error err:FOAR0002 is raised 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 XQSharp: err:FOAR0002 is raised. XQuantum: not specified Anonymous: not specified xq2xsl: not specified XQSharp: err:FOAR0002 is raised. [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.
BaseX: not specified Berkeley DB XML: not specified DataDirect XQuery: DataDirect XQuery supports unlimited-precision decimal arithmetic eXist-db: not specified Galax: not specified MarkLogic Server: Mark Logic supports 18 digits of precision 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 XQSharp: 18 digits are supported. XQuantum: not specified Anonymous: not specified xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica XQSharp: 18 digits are supported. [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.
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 MarkLogic Server: Round 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 XQSharp: Results are rounded. XQuantum: not specified Anonymous: not specified xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica XQSharp: Results are rounded. [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.
BaseX: not specified Berkeley DB XML: not specified DataDirect XQuery: XML 1.0 based eXist-db: not specified Galax: not specified MarkLogic Server: 5.0 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 XQSharp: not specified XQuantum: not specified Anonymous: not specified xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica XQSharp: not specified [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.
BaseX: not specified Berkeley DB XML: NFC, NFD, NFKC, NFKD DataDirect XQuery: NFC, NFD, NFKC, and NFKD eXist-db: not specified Galax: not specified MarkLogic Server: NFC, NFD, NFKC and NFKD 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 XQSharp: NFC, NFD, NFKC, NFKD XQuantum: not specified Anonymous: not specified xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica XQSharp: NFC, NFD, NFKC, NFKD [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.
BaseX: Depends on Java Berkeley DB XML: not specified DataDirect XQuery: Dependent on the Java Virtual Machine eXist-db: not specified Galax: not specified MarkLogic Server: Supported 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 XQSharp: not specified XQuantum: not specified Anonymous: not specified xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica XQSharp: not specified [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.
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 MarkLogic Server: Four digits for the year and six for fractional seconds 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 XQSharp: At least 17 digits are supported for the year, and at least 12 decimal digits are supported for the seconds. XQuantum: not specified Anonymous: not specified xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica XQSharp: At least 17 digits are supported for the year, and at least 12 decimal digits are supported for the seconds. [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.
BaseX: not specified Berkeley DB XML: not specified DataDirect XQuery: not specified eXist-db: not specified Galax: not specified MarkLogic Server: Rounded 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 XQSharp: Results are rounded as by System.Decimal.Parse. XQuantum: not specified Anonymous: not specified xq2xsl: not specified XQSharp: Results are rounded as by System.Decimal.Parse. [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.
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 MarkLogic Server: fn:doc selects from documents in the in-scope database 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 XQSharp: An interface is provided that allows for arbitrary mapping between URIs and documents. By default the standard System.Xml.XmlUriResolver is used. Use of DTD and schema can be specified in the static context. XQuantum: not specified Anonymous: not specified xq2xsl: not specified XQSharp: An interface is provided that allows for arbitrary mapping between URIs and documents. By default the standard System.Xml.XmlUriResolver is used. Use of DTD and schema can be specified in the static context. [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.
BaseX: not specified Berkeley DB XML: not specified DataDirect XQuery: not specified eXist-db: not specified Galax: not specified MarkLogic Server: N/A 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 XQSharp: not specified XQuantum: not specified Anonymous: not specified xq2xsl: not specified XQSharp: not specified [DataModel] Support for additional user-defined or implementation-defined types is implementation-defined. (See 2.6.1 Representation of Types)
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 MarkLogic Server: There are additional built-in types defined in the http://marklogic.com/cts namespace. See documentation 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 XQSharp: Currently not supported. XQuantum: not specified Anonymous: not specified xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica XQSharp: Currently not supported. [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)
BaseX: not specified Berkeley DB XML: not specified DataDirect XQuery: Access to undefined values is an error. eXist-db: not specified Galax: not specified MarkLogic Server: Access to undefined values is an error 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 XQSharp: not specified XQuantum: not specified Anonymous: not specified xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica XQSharp: not specified [Serialization] For any implementation-defined output method, it is implementation-defined whether sequence normalization process takes place. (See 2 Sequence Normalization)
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 MarkLogic Server: N/A, no implementation-defined output method 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 XQSharp: not specified XQuantum: not specified Anonymous: not specified xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica XQSharp: not specified [Serialization] If the namespace URI is non-null for the method serialization parameter, then the parameter specifies an implementation-defined output method. (See 3 Serialization Parameters)
BaseX: not specified 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 MarkLogic Server: N/A Qexo: not specified Qizx: not specified Saxon-SA: Saxon allows a user-specified serialization class to be nominated using this mechanism. The class may be a SAX ContentHandler or a Saxon Receiver. Sedna XML Database System: not specified Stylus Studio: not specified xbird/open: Allows a user-specified serialization class. X-Hive/DB: not specified xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica XQSharp: not specified XQuantum: not specified Anonymous: not specified xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica XQSharp: not specified [Serialization] If the value of the normalization-form form parameter is not NFC, NFD, NFKC, NFKD, fully-normalized, or none then the meaning of the value and it's effect is implementation-defined. (See 4 Phases of Serialization)
BaseX: not specified Berkeley DB XML: not specified DataDirect XQuery: An error is reported eXist-db: not specified Galax: not specified MarkLogic Server: Assumed to be NFC Qexo: not specified Qizx: Error raised Saxon-SA: not specified Sedna XML Database System: not specified Stylus Studio: not specified xbird/open: Assumed to be NFC. X-Hive/DB: not specified xq2xsl: not specified XQSharp: An SESU0011 error is raised. XQuantum: not specified Anonymous: not specified xq2xsl: not specified XQSharp: An SESU0011 error is raised. [Serialization] The effect of additional serialization parameters on the output of the serializer, where the name of such a parameter must be namespace-qualified, is implementation-defined or implementation-dependent. The extent of this effect on the output must not override the provisions of this specification. (See 3 Serialization Parameters)
BaseX: Some internal serialization options exist Berkeley DB XML: not specified DataDirect XQuery: Additional serialization parameters are ignored. eXist-db: not specified Galax: not specified MarkLogic Server: N/A Qexo: not specified Qizx: not specified Saxon-SA: Saxon supports a number of additional serialization parameters in the namespace http://saxon.sf.net. These include saxon:indent-spaces, saxon:character-representation, saxon:require-well-formed, and saxon:next-in-chain Sedna XML Database System: not specified Stylus Studio: not specified xbird/open: Additional serialization parameters, such as indent size, pretty printing, and XML version, etc, is supported. X-Hive/DB: not specified xq2xsl: not specified XQSharp: not specified XQuantum: not specified Anonymous: not specified xq2xsl: not specified XQSharp: not specified [Serialization] The effect of providing an option that allows the encoding phase to be skipped, so that the result of serialization is a stream of Unicode characters, is implementation-defined. The serializer is not required to support such an option. (See 4 Phases of Serialization)
BaseX: not specified Berkeley DB XML: not specified DataDirect XQuery: DataDirect XQuery implements an XQJ early draft, and it allows to serialize to a java.lang.String and java.io.Writer rather than a byte stream eXist-db: not specified Galax: not specified MarkLogic Server: N/A Qexo: not specified Qizx: not specified Saxon-SA: Saxon allows the serialization destination to be a Java Writer (a character stream) rather than a byte stream. Sedna XML Database System: not specified Stylus Studio: not specified xbird/open: Allows the serialization method defined by java.io.Writer. X-Hive/DB: not specified xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica XQSharp: not specified XQuantum: not specified Anonymous: not specified xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica XQSharp: not specified [Serialization] An serializer may provide an implementation-defined mechanism to place CDATA sections in the result tree. (See 5.1.4 XML Output Method: the cdata-section-elements Parameter)
BaseX: Not supported. Berkeley DB XML: not specified DataDirect XQuery: DataDirect XQuery doesn't provide such mechanism. eXist-db: not specified Galax: not specified MarkLogic Server: N/A, CDATA sections are not maintained in the stored model Qexo: not specified Qizx: not specified Saxon-SA: Saxon provides the standard cdata-section-elements mechanism only. Sedna XML Database System: not specified Stylus Studio: not specified xbird/open: The standard cdata-section-elements mechanism is only provides. X-Hive/DB: not specified xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica XQSharp: not specified XQuantum: not specified Anonymous: not specified xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica XQSharp: not specified
Statically known namespaces
BaseX: not specified Berkeley DB XML: not specified DataDirect XQuery: XQuery default augmented with xmlns:ddtek='http://www.datadirect.com/xquery', xmlns:ddtek-sql='http://www.datadirect.com/xquery/sql-function', xmlns:ddtek-sql-jdbc='http://www.datadirect.com/xquery/sql-jdbc-escapefunction' eXist-db: XQuery default augmented with xmlns:exist='http://exist.sourceforge.net/NS/exist' (unbound when the XQTS is run) Galax: not specified MarkLogic Server: XQuery 1.0 default Qexo: not specified Qizx: prefix x for extension functions, can be augmented through the API and by the Java binding mechanism. Saxon-SA: augmentable via API Sedna XML Database System: not specified Stylus Studio: XQuery default xbird/open: Prefix java for extension functions. X-Hive/DB: default plus xhive='http://www.x-hive.com/2001/08/xquery-functions' xq2xsl: predefined XQuery ones plus 'xsl' bound to the xslt namespace. XQSharp: XQuery default. XQuantum: not specified Anonymous: not specified xq2xsl: predefined XQuery ones plus 'xsl' bound to the xslt namespace. XQSharp: XQuery default. Default element/type namespace
BaseX: not specified Berkeley DB XML: not specified DataDirect XQuery: XQuery default eXist-db: XQuery default Galax: not specified MarkLogic Server: Empty namespace Qexo: not specified Qizx: none Saxon-SA: settable via API Sedna XML Database System: not specified Stylus Studio: XQuery default xbird/open: default X-Hive/DB: default xq2xsl: null XQSharp: XQuery default. XQuantum: not specified Anonymous: not specified xq2xsl: null XQSharp: XQuery default. Default function namespace
BaseX: not specified Berkeley DB XML: not specified DataDirect XQuery: XQuery default eXist-db: 'http://www.w3.org/2005/xpath-functions' by default Galax: not specified MarkLogic Server: http://www.w3.org/2005/xpath-functions for main modules, module namespace in library modules Qexo: not specified Qizx: standard Saxon-SA: defined in prolog Sedna XML Database System: not specified Stylus Studio: XQuery default xbird/open: default X-Hive/DB: default xq2xsl: XQSharp: XQuery default. XQuantum: not specified Anonymous: not specified xq2xsl: XQSharp: XQuery default. In-scope schema types
BaseX: not specified Berkeley DB XML: not specified DataDirect XQuery: XQuery default eXist-db: N/A Galax: not specified MarkLogic Server: XQuery default Qexo: not specified Qizx: none Saxon-SA: augmentable via API Sedna XML Database System: not specified Stylus Studio: XQuery default xbird/open: default X-Hive/DB: default xq2xsl: none XQSharp: XQuery default. XQuantum: not specified Anonymous: not specified xq2xsl: none XQSharp: XQuery default. In-scope element declarations
BaseX: not specified Berkeley DB XML: not specified DataDirect XQuery: XQuery default eXist-db: N/A Galax: not specified MarkLogic Server: XQuery default Qexo: not specified Qizx: none Saxon-SA: augmentable via API Sedna XML Database System: not specified Stylus Studio: XQuery default xbird/open: none X-Hive/DB: none xq2xsl: none XQSharp: XQuery default. XQuantum: not specified Anonymous: not specified xq2xsl: none XQSharp: XQuery default. In-scope attribute declarations
BaseX: not specified Berkeley DB XML: not specified DataDirect XQuery: XQuery default eXist-db: N/A Galax: not specified MarkLogic Server: XQuery default Qexo: not specified Qizx: none Saxon-SA: augmentable via API Sedna XML Database System: not specified Stylus Studio: XQuery default xbird/open: none X-Hive/DB: none xq2xsl: none XQSharp: XQuery default. XQuantum: not specified Anonymous: not specified xq2xsl: none XQSharp: XQuery default. In-scope variables
BaseX: not specified Berkeley DB XML: not specified DataDirect XQuery: XQuery default eXist-db: None Galax: not specified MarkLogic Server: External variables bound at invocation, if any Qexo: not specified Qizx: augmentable via API, application-dependent Saxon-SA: defined in prolog Sedna XML Database System: not specified Stylus Studio: XQuery default xbird/open: augmentable via API. X-Hive/DB: none xq2xsl: none XQSharp: XQuery default. XQuantum: not specified Anonymous: not specified xq2xsl: none XQSharp: XQuery default. Context item static type
BaseX: not specified Berkeley DB XML: not specified DataDirect XQuery: XQuery default eXist-db: item()? Galax: not specified MarkLogic Server: No default context item Qexo: not specified Qizx: from actual value. Can be set through API. Saxon-SA: fixed as item()* Sedna XML Database System: not specified Stylus Studio: XQuery default xbird/open: fixed as item()* X-Hive/DB: not specified xq2xsl: xs:integer XQSharp: XQuery default. XQuantum: not specified Anonymous: not specified xq2xsl: xs:integer XQSharp: XQuery default. Function signatures
BaseX: not specified Berkeley DB XML: not specified DataDirect XQuery: XQuery default eXist-db: XQuery default Galax: not specified MarkLogic Server: XQuery default Qexo: not specified Qizx: Can be augmented by Java binding mechanism. Native functions are pluggable. Saxon-SA: augmentable via API Sedna XML Database System: not specified Stylus Studio: XQuery default xbird/open: augmentable via API. X-Hive/DB: not specified xq2xsl: XSLT XQSharp: XQuery default. Additional functions are also defined as at http://staging.cbcl.co.uk/xqsharp/functions.htm XQuantum: not specified Anonymous: not specified xq2xsl: XSLT XQSharp: XQuery default. Additional functions are also defined as at http://staging.cbcl.co.uk/xqsharp/functions.htm Statically known collations
BaseX: not specified Berkeley DB XML: not specified DataDirect XQuery: The collations supported by the Java Virtual Machine. eXist-db: See http://exist.sourceforge.net/xquery.html#N10676 Galax: not specified MarkLogic Server: Collations exposed by ICU, plus codepoint Qexo: not specified Qizx: Based on Java collators and locales. Saxon-SA: settable via API Sedna XML Database System: not specified Stylus Studio: All collations exposed by ICU xbird/open: Based on Java collations X-Hive/DB: Java collations xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica XQSharp: http://www.w3.org/2005/xpath-functions/collation/codepoint XQuantum: not specified Anonymous: not specified xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica XQSharp: http://www.w3.org/2005/xpath-functions/collation/codepoint Default collation
BaseX: not specified Berkeley DB XML: not specified DataDirect XQuery: XQuery default eXist-db: http://www.w3.org/2005/xpath-functions/collation/codepoint Galax: not specified MarkLogic Server: http://marklogic.com/collation/ (UCA root collation), settable per appserver Qexo: not specified Qizx: codepoint. Saxon-SA: settable via API Sedna XML Database System: not specified Stylus Studio: XQuery default xbird/open: Unicode codepoint X-Hive/DB: Unicode collation xq2xsl: Unicode codepoint XQSharp: XQuery default. XQuantum: not specified Anonymous: not specified xq2xsl: Unicode codepoint XQSharp: XQuery default. Construction mode
BaseX: not specified Berkeley DB XML: not specified DataDirect XQuery: XQuery default eXist-db: not specified Galax: not specified MarkLogic Server: Strip Qexo: not specified Qizx: N/A Saxon-SA: defined in prolog Sedna XML Database System: not specified Stylus Studio: XQuery default xbird/open: preserve X-Hive/DB: not specified xq2xsl: XQSharp: XQuery default. XQuantum: not specified Anonymous: not specified xq2xsl: XQSharp: XQuery default. Ordering mode
BaseX: not specified Berkeley DB XML: not specified DataDirect XQuery: XQuery default eXist-db: not specified Galax: not specified MarkLogic Server: Ordered Qexo: not specified Qizx: ordered. Saxon-SA: defined in prolog Sedna XML Database System: not specified Stylus Studio: XQuery default xbird/open: ordered X-Hive/DB: ordered xq2xsl: ordered XQSharp: XQuery default. XQuantum: not specified Anonymous: not specified xq2xsl: ordered XQSharp: XQuery default. Default order for empty sequences
BaseX: not specified Berkeley DB XML: not specified DataDirect XQuery: least eXist-db: not specified Galax: not specified MarkLogic Server: Empty last Qexo: not specified Qizx: empty least. Saxon-SA: defined in prolog Sedna XML Database System: not specified Stylus Studio: XQuery default xbird/open: empty greatest X-Hive/DB: empty greatest xq2xsl: empty first XQSharp: empty greatest XQuantum: not specified Anonymous: not specified xq2xsl: empty first XQSharp: empty greatest Boundary-space policy
BaseX: not specified Berkeley DB XML: not specified DataDirect XQuery: XQuery default eXist-db: not specified Galax: not specified MarkLogic Server: Strip Qexo: not specified Qizx: strip Saxon-SA: defined in prolog Sedna XML Database System: not specified Stylus Studio: XQuery default xbird/open: strip X-Hive/DB: collapse xq2xsl: strip XQSharp: XQuery default. XQuantum: not specified Anonymous: not specified xq2xsl: strip XQSharp: XQuery default. Copy-namespaces mode
BaseX: not specified Berkeley DB XML: not specified DataDirect XQuery: XQuery default eXist-db: not specified Galax: not specified MarkLogic Server: Preserve, Inherit Qexo: not specified Qizx: Saxon-SA: defined in prolog Sedna XML Database System: not specified Stylus Studio: XQuery default xbird/open: No preserve X-Hive/DB: copy xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica XQSharp: XQuery default. XQuantum: not specified Anonymous: not specified xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica XQSharp: XQuery default. Base URI
BaseX: not specified Berkeley DB XML: not specified DataDirect XQuery: Depends on your DataDirect XQuery configuration eXist-db: '/db' by default Galax: not specified MarkLogic Server: Empty Qexo: not specified Qizx: Defined by API. Saxon-SA: settable via API Sedna XML Database System: not specified Stylus Studio: URI of the XQuery source xbird/open: Defined by API. Default is set to Java system property of user.dir. X-Hive/DB: URI of the document the query is run on xq2xsl: XQSharp: URI of the query file. If the query is not read from a file, then a Base URI must be provided when the query is compiled. XQuantum: not specified Anonymous: not specified xq2xsl: XQSharp: URI of the query file. If the query is not read from a file, then a Base URI must be provided when the query is compiled. Statically known documents
BaseX: not specified Berkeley DB XML: not specified DataDirect XQuery: XQuery default eXist-db: By default, all the documents stored in the database for which the user has required permissions Galax: not specified MarkLogic Server: All user-visible documents in the in-scope database Qexo: not specified Qizx: none (only dynamic) Saxon-SA: empty set Sedna XML Database System: not specified Stylus Studio: XQuery default xbird/open: none X-Hive/DB: not specified xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica XQSharp: XQuery default. XQuantum: not specified Anonymous: not specified xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica XQSharp: XQuery default. Statically known collections
BaseX: not specified Berkeley DB XML: not specified DataDirect XQuery: Data types of the data stored in database tables that can be referenced with fn:collection() are statically known eXist-db: By default, all the collections stored in the database for which the user has required permissions Galax: not specified MarkLogic Server: All user-visible collections in the in-scope database Qexo: not specified Qizx: none (only dynamic) Saxon-SA: empty set Sedna XML Database System: not specified Stylus Studio: XQuery default xbird/open: none X-Hive/DB: not specified xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica XQSharp: XQuery default. XQuantum: not specified Anonymous: not specified xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica XQSharp: XQuery default. Statically known default collection type
BaseX: not specified Berkeley DB XML: not specified DataDirect XQuery: XQuery default eXist-db: not specified Galax: not specified MarkLogic Server: document-node()* Qexo: not specified Qizx: none Saxon-SA: none Sedna XML Database System: not specified Stylus Studio: A set of database connections as defined by the user xbird/open: none X-Hive/DB: not specified xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica XQSharp: XQuery default. XQuantum: not specified Anonymous: not specified xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica XQSharp: XQuery default.
Context item
BaseX: not specified Berkeley DB XML: not specified DataDirect XQuery: XQuery conformant eXist-db: not specified Galax: not specified MarkLogic Server: No default context item Qexo: not specified Qizx: undefined Saxon-SA: settable via API Sedna XML Database System: not specified Stylus Studio: An XML file as (optionally) specified by the user xbird/open: Undefined X-Hive/DB: initialized to the node the query is executed on xq2xsl: 1 XQSharp: XQuery default. XQuantum: not specified Anonymous: not specified xq2xsl: 1 XQSharp: XQuery default. Context position
BaseX: not specified Berkeley DB XML: not specified DataDirect XQuery: XQuery conformant eXist-db: not specified Galax: not specified MarkLogic Server: N/A Qexo: not specified Qizx: N/A Saxon-SA: always 1 Sedna XML Database System: not specified Stylus Studio: XQuery default xbird/open: 0 if not initialized. X-Hive/DB: not specified xq2xsl: 1 XQSharp: By default is not set. If context item is set then context position is set to 1 XQuantum: not specified Anonymous: not specified xq2xsl: 1 XQSharp: By default is not set. If context item is set then context position is set to 1 Context size
BaseX: not specified Berkeley DB XML: not specified DataDirect XQuery: XQuery conformant eXist-db: not specified Galax: not specified MarkLogic Server: N/A Qexo: not specified Qizx: N/A Saxon-SA: always 1 Sedna XML Database System: not specified Stylus Studio: XQuery default xbird/open: N/A X-Hive/DB: not specified xq2xsl: 1 XQSharp: By default is not set. If context item is set then context size is set to 1 XQuantum: not specified Anonymous: not specified xq2xsl: 1 XQSharp: By default is not set. If context item is set then context size is set to 1 Variable values
BaseX: not specified Berkeley DB XML: not specified DataDirect XQuery: XQuery conformant eXist-db: not specified Galax: not specified MarkLogic Server: External variable values are bound at invocation Qexo: not specified Qizx: Settable by API Saxon-SA: settable via API Sedna XML Database System: not specified Stylus Studio: External variables are defined with a value specified by the user xbird/open: Settable via API X-Hive/DB: not specified xq2xsl: XQSharp: XQuery default. XQuantum: not specified Anonymous: not specified xq2xsl: XQSharp: XQuery default. Function implementations
BaseX: not specified Berkeley DB XML: not specified DataDirect XQuery: XQuery conformant eXist-db: not specified Galax: not specified MarkLogic Server: N/A Qexo: not specified Qizx: dynamically loaded Saxon-SA: augmentable via API Sedna XML Database System: not specified Stylus Studio: XQuery default xbird/open: Functions are dynamically loaded for call-by need fasion. X-Hive/DB: not specified xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica XQSharp: XQuery default. Additional functions are also defined as at http://staging.cbcl.co.uk/xqsharp/functions.htm XQuantum: not specified Anonymous: not specified xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica XQSharp: XQuery default. Additional functions are also defined as at http://staging.cbcl.co.uk/xqsharp/functions.htm Current dateTime
BaseX: not specified Berkeley DB XML: not specified DataDirect XQuery: System clock based eXist-db: Settable using an option, a pragma, or API Galax: not specified MarkLogic Server: As reported by the platform Operating System Qexo: not specified Qizx: Defined by JVM. Saxon-SA: settable via API, default from system clock Sedna XML Database System: not specified Stylus Studio: As reported by the system xbird/open: Default from system clock. X-Hive/DB: not specified xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica XQSharp: By default set to the current system date time when the dynamic context is created. This can be overridden through the API. XQuantum: not specified Anonymous: not specified xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica XQSharp: By default set to the current system date time when the dynamic context is created. This can be overridden through the API. Implicit timezone
BaseX: not specified Berkeley DB XML: not specified DataDirect XQuery: System clock based eXist-db: Settable using an option, a pragma, or API Galax: not specified MarkLogic Server: OS default, or settable per request for XCC connections Qexo: not specified Qizx: Can be set through the API. Default is local timezone. Saxon-SA: settable via API, default from system clock Sedna XML Database System: not specified Stylus Studio: As reported by the system xbird/open: Settable via API. Default is local timezone. X-Hive/DB: Z xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica XQSharp: Z. This can be overridden through the API. XQuantum: not specified Anonymous: Z xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica XQSharp: Z. This can be overridden through the API. Available documents
BaseX: not specified Berkeley DB XML: not specified DataDirect XQuery: Any XML document accessible through http:, ftp:, and file: URI schemes eXist-db: By default, all the documents stored in the database for which the user has required permissions + external URLs Galax: not specified MarkLogic Server: All user-visible documents in the in-scope database Qexo: not specified Qizx: Defined by environment. Documents of opened databases in XQuest. Redefineable DocumentManager for parsed documents. Saxon-SA: settable via API (URIResolver) Sedna XML Database System: not specified Stylus Studio: XQuery default xbird/open: Defined by environment. Settable via API(DocumentManager). X-Hive/DB: not specified xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica XQSharp: By default any document retrievable with a System.Xml.XmlUriResolver. XQuantum: not specified Anonymous: not specified xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica XQSharp: By default any document retrievable with a System.Xml.XmlUriResolver. Available collections
BaseX: not specified Berkeley DB XML: not specified DataDirect XQuery: Any table accessible through the configured JDBC connections eXist-db: By default, all the collections stored in the database for which the user has required permissions Galax: not specified MarkLogic Server: All user-visible collections in the in-scope database Qexo: not specified Qizx: Defined by environment. Collections of opened databases in XQuest. Saxon-SA: settable via API (CollectionURIResolver) Sedna XML Database System: not specified Stylus Studio: XQuery default xbird/open: Defined by environment. Collections of opened databases for XBird embedded mode. X-Hive/DB: not specified xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica XQSharp: By default none. Can be set through the API. XQuantum: not specified Anonymous: not specified xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica XQSharp: By default none. Can be set through the API. Default collection
BaseX: not specified Berkeley DB XML: not specified DataDirect XQuery: XQuery default eXist-db: By default, all the collections stored in the database for which the user has required permissions Galax: not specified MarkLogic Server: All user-visible documents in the in-scope database Qexo: not specified Qizx: Can be set by API. Saxon-SA: none Sedna XML Database System: not specified Stylus Studio: XQuery default xbird/open: Can be set by configuration file setting. X-Hive/DB: not specified xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica XQSharp: By default none. Can be set through the API. XQuantum: not specified Anonymous: not specified xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica XQSharp: By default none. Can be set through the API.
Legend:
passed
almost passed
(≥ 98%)
failed
untested
XQuery XQueryX Feature BaseX Berkeley DB XML
(unspecified)DataDirect XQuery eXist-db Galax
(unspecified)MarkLogic Server Qexo Qizx Saxon-SA
(XQTS CVS)Sedna XML Database System Stylus Studio
(XQTS 1.0)xbird/open
(XQTS 1.0.0 dev (rev 1.28))X-Hive/DB xq2xsl
(XQTS 1.0.2 dev)XQSharp
(XQTS CVS)XQuantum Anonymous
(XQTS 1.0)xq2xsl
(XQTS 1.0.2 dev)XQSharp
(XQTS CVS)Summary Minimal Conformance Optional Feature Errors Single error code for extra features 18/18 18/18 18/18 12/18 18/18 18/18 17/18 18/18 18/18 18/18 18/18 0/18 18/18 18/18 17/18 18/18 9/14 14/14 13/14 13/19 XQuery Basics Static Context Evaluation 1/1 1/1 1/1 0/1 1/1 1/1 0/1 1/1 1/1 0/1 1/1 1/1 1/1 1/1 1/1 1/1 0/1 1/1 1/1 15/19 Query Types XQuery Sequence Type Syntax 21/21 21/21 21/21 21/21 21/21 21/21 21/21 21/21 21/21 21/21 21/21 21/21 21/21 21/21 21/21 21/21 21/21 21/21 21/21 19/19 XQuery Expressions Primary Expressions Literals 119/119 119/119 119/119 119/119 119/119 119/119 119/119 119/119 119/119 119/119 119/119 116/119 119/119 119/119 119/119 119/119 67/70 70/70 70/70 17/19 Parenthesized Expressions 20/20 20/20 20/20 18/20 20/20 20/20 20/20 20/20 20/20 19/20 20/20 18/20 20/20 20/20 20/20 20/20 19/20 20/20 20/20 15/19 Context Item Expressions External Context Item Expressions 24/24 24/24 24/24 24/24 24/24 22/24 24/24 24/24 24/24 22/24 24/24 21/24 22/24 24/24 24/24 22/24 21/24 24/24 24/24 13/19 Internal Context Item Expressions 21/21 21/21 21/21 21/21 21/21 21/21 21/21 21/21 21/21 21/21 21/21 21/21 20/21 21/21 21/21 21/21 21/21 21/21 21/21 18/19 Function Calls 28/28 28/28 28/28 27/28 28/28 28/28 28/28 28/28 28/28 27/28 28/28 28/28 28/28 28/28 28/28 28/28 23/23 23/23 23/23 17/19 Path Expressions General Path Expression Tests 1/1 1/1 1/1 1/1 1/1 1/1 1/1 1/1 1/1 0/1 1/1 0/1 1/1 1/1 1/1 1/1 1/1 1/1 1/1 17/19 Steps Axes 186/186 186/186 186/186 186/186 186/186 186/186 186/186 186/186 186/186 186/186 186/186 181/186 186/186 186/186 186/186 185/186 183/184 184/184 184/184 16/19 Node Tests NodeTest 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 23/24 24/24 23/24 24/24 24/24 24/24 24/24 23/24 24/24 24/24 16/19 NameTest 37/37 37/37 37/37 37/37 37/37 37/37 37/37 37/37 37/37 34/37 37/37 33/37 37/37 37/37 37/37 36/37 18/22 22/22 22/22 15/19 Predicates 44/44 44/44 44/44 44/44 44/44 44/44 44/44 44/44 44/44 44/44 44/44 40/44 44/44 44/44 44/44 44/44 44/44 44/44 44/44 18/19 Unabbreviated Syntax 26/26 26/26 26/26 25/26 26/26 26/26 26/26 26/26 26/26 26/26 26/26 23/26 26/26 26/26 26/26 26/26 25/26 26/26 26/26 16/19 Abbreviated Syntax 21/21 21/21 21/21 21/21 21/21 21/21 21/21 21/21 21/21 21/21 21/21 20/21 21/21 21/21 21/21 21/21 20/21 21/21 21/21 17/19 Sequence Expressions Constructing Sequences Comma Operator 54/54 54/54 54/54 54/54 54/54 54/54 54/54 54/54 54/54 54/54 54/54 53/54 54/54 54/54 54/54 54/54 54/54 54/54 54/54 18/19 Range Expression 65/65 65/65 65/65 65/65 65/65 65/65 65/65 65/65 65/65 65/65 65/65 60/65 65/65 65/65 65/65 63/65 65/65 65/65 65/65 17/19 Filter Expressions 116/116 116/116 116/116 116/116 116/116 116/116 116/116 116/116 116/116 116/116 116/116 97/116 116/116 116/116 116/116 111/116 109/111 111/111 111/111 16/19 Combining Node Sequences 20/20 20/20 20/20 20/20 20/20 20/20 20/20 20/20 20/20 20/20 20/20 15/20 20/20 20/20 20/20 20/20 20/20 20/20 20/20 18/19 Operators Arithmetic Operators Arithmetic Operators on Numeric Values op:numeric-add 137/137 135/137 137/137 137/137 137/137 136/137 137/137 137/137 137/137 137/137 135/137 100/137 137/137 137/137 137/137 135/137 137/137 137/137 137/137 14/19 op:numeric-subtract 107/107 107/107 107/107 107/107 107/107 107/107 107/107 107/107 107/107 107/107 107/107 92/107 107/107 107/107 107/107 107/107 107/107 107/107 107/107 18/19 op:numeric-multiply 79/79 79/79 79/79 79/79 79/79 79/79 79/79 79/79 79/79 79/79 79/79 67/79 79/79 79/79 79/79 79/79 76/76 76/76 76/76 18/19 op:numeric-divide 105/105 105/105 105/105 104/105 105/105 105/105 105/105 105/105 105/105 101/105 105/105 71/105 105/105 105/105 105/105 104/105 94/102 102/102 102/102 14/19 op:numeric-integer-divide 109/109 109/109 109/109 108/109 109/109 109/109 109/109 109/109 109/109 108/109 109/109 97/109 109/109 109/109 109/109 108/109 106/106 106/106 106/106 15/19 op:numeric-mod 58/58 58/58 58/58 57/58 58/58 58/58 58/58 58/58 58/58 57/58 58/58 48/58 58/58 58/58 58/58 57/58 55/55 55/55 55/55 15/19 op:numeric-unary-plus 51/51 51/51 51/51 51/51 51/51 51/51 51/51 51/51 51/51 51/51 51/51 50/51 51/51 51/51 51/51 51/51 51/51 51/51 51/51 18/19 op:numeric-unary-minus 52/52 52/52 52/52 52/52 52/52 52/52 52/52 52/52 52/52 52/52 52/52 51/52 52/52 52/52 52/52 52/52 52/52 52/52 52/52 18/19 Arithmetic Operators on Duration Values op:add-yearMonthDurations 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 16/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 18/19 op:subtract-yearMonthDurations 30/30 30/30 30/30 30/30 30/30 30/30 30/30 30/30 30/30 30/30 30/30 21/30 30/30 30/30 30/30 30/30 30/30 30/30 30/30 18/19 op:multiply-yearMonthDuration 37/37 37/37 37/37 37/37 37/37 37/37 37/37 37/37 37/37 37/37 37/37 27/37 37/37 37/37 37/37 37/37 36/37 37/37 37/37 17/19 op:divide-yearMonthDuration 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 7/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 18/19 op:divide-yearMonthDuration-by-yearMonthDuration 22/22 22/22 22/22 22/22 22/22 22/22 22/22 22/22 22/22 22/22 22/22 16/22 22/22 22/22 22/22 22/22 22/22 22/22 22/22 18/19 op:add-dayTimeDurations 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 23/24 24/24 24/24 18/19 op:subtract-dayTimeDurations 30/30 30/30 30/30 30/30 30/30 30/30 30/30 30/30 30/30 30/30 30/30 30/30 30/30 30/30 30/30 30/30 30/30 30/30 30/30 19/19 op:multiply-dayTimeDuration 32/32 32/32 32/32 32/32 32/32 32/32 32/32 32/32 32/32 32/32 32/32 31/32 32/32 32/32 32/32 32/32 30/32 32/32 32/32 17/19 op:divide-dayTimeDuration 36/36 36/36 36/36 36/36 36/36 36/36 36/36 36/36 36/36 36/36 36/36 31/36 36/36 36/36 36/36 36/36 36/36 36/36 36/36 18/19 op:divide-dayTimeDuration-by-dayTimeDuration 22/22 22/22 22/22 22/22 22/22 22/22 22/22 22/22 22/22 22/22 22/22 20/22 22/22 22/22 22/22 22/22 22/22 22/22 22/22 18/19 Arithmetic Operators on Duration and Date Time Values op:subtract-dateTimes-yielding-dayTimeDuration 26/26 26/26 26/26 26/26 26/26 26/26 26/26 26/26 26/26 26/26 26/26 18/26 26/26 26/26 26/26 26/26 25/26 26/26 26/26 17/19 op:subtract-dates-yielding-dayTimeDuration 26/26 26/26 26/26 26/26 26/26 26/26 26/26 26/26 26/26 26/26 26/26 19/26 26/26 26/26 26/26 25/26 25/26 26/26 26/26 16/19 op:subtract-times 29/29 29/29 29/29 29/29 29/29 29/29 29/29 29/29 29/29 29/29 29/29 28/29 29/29 29/29 29/29 29/29 29/29 29/29 29/29 18/19 op:add-yearMonthDuration-to-dateTime 26/26 26/26 26/26 26/26 26/26 26/26 26/26 26/26 26/26 26/26 26/26 26/26 26/26 26/26 26/26 26/26 25/26 26/26 26/26 18/19 op:add-dayTimeDuration-to-dateTime 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 23/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 18/19 op:subtract-yearMonthDuration-from-dateTime 21/21 21/21 21/21 21/21 21/21 21/21 21/21 21/21 21/21 21/21 21/21 21/21 21/21 21/21 21/21 21/21 21/21 21/21 21/21 19/19 op:subtract-dayTimeDuration-from-dateTime 20/20 20/20 20/20 20/20 20/20 20/20 20/20 20/20 20/20 20/20 20/20 20/20 20/20 20/20 20/20 20/20 20/20 20/20 20/20 19/19 op:add-yearMonthDuration-to-date 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 19/19 op:add-dayTimeDuration-to-date 22/22 22/22 22/22 22/22 22/22 22/22 22/22 22/22 22/22 22/22 22/22 21/22 22/22 22/22 22/22 22/22 21/22 22/22 22/22 17/19 op:subtract-yearMonthDuration-from-date 23/23 23/23 23/23 23/23 23/23 23/23 23/23 23/23 23/23 23/23 23/23 23/23 23/23 23/23 23/23 23/23 23/23 23/23 23/23 19/19 op:subtract-dayTimeDuration-from-date 21/21 21/21 21/21 21/21 21/21 21/21 21/21 21/21 21/21 21/21 21/21 20/21 21/21 21/21 21/21 21/21 20/21 21/21 21/21 17/19 op:add-dayTimeDuration-to-time 24/24 24/24 24/24 24/24 24/24 24/24 22/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 22/24 24/24 24/24 17/19 op:subtract-dayTimeDuration-from-time 26/26 26/26 26/26 26/26 26/26 26/26 25/26 26/26 26/26 26/26 26/26 26/26 26/26 26/26 26/26 26/26 25/26 26/26 26/26 17/19 Comparison Operators Value Comparison Comparison of Numeric Values op:numeric-equal 178/178 178/178 178/178 178/178 178/178 178/178 178/178 178/178 178/178 178/178 178/178 175/178 178/178 178/178 178/178 178/178 177/177 177/177 177/177 18/19 op:numeric-less-than 152/152 152/152 152/152 152/152 152/152 152/152 152/152 152/152 152/152 152/152 152/152 148/152 152/152 152/152 152/152 152/152 152/152 152/152 152/152 18/19 op:numeric-greater-than 88/88 88/88 88/88 88/88 88/88 88/88 88/88 88/88 88/88 88/88 88/88 84/88 88/88 88/88 88/88 88/88 88/88 88/88 88/88 18/19 Comparison Operators on Boolean Values op:boolean-equal 49/49 49/49 49/49 49/49 49/49 49/49 49/49 49/49 49/49 49/49 49/49 49/49 49/49 49/49 49/49 49/49 49/49 49/49 49/49 19/19 op:boolean-less-than 39/39 39/39 39/39 39/39 39/39 39/39 39/39 39/39 39/39 39/39 39/39 29/39 39/39 39/39 39/39 39/39 39/39 39/39 39/39 18/19 op:boolean-greater-than 39/39 39/39 39/39 39/39 39/39 39/39 39/39 39/39 39/39 39/39 39/39 27/39 39/39 39/39 39/39 39/39 39/39 39/39 39/39 18/19 Comparisons of Duration, Date Time Values op:yearMonthDuration-less-than 28/28 28/28 28/28 28/28 28/28 28/28 28/28 28/28 28/28 28/28 28/28 28/28 28/28 28/28 28/28 28/28 28/28 28/28 28/28 19/19 op:yearMonthDuration-greater-than 28/28 28/28 28/28 28/28 28/28 28/28 28/28 28/28 28/28 28/28 28/28 28/28 28/28 28/28 28/28 28/28 28/28 28/28 28/28 19/19 op:dayTimeDuration-less-than 28/28 28/28 28/28 28/28 28/28 28/28 28/28 28/28 28/28 28/28 28/28 26/28 28/28 28/28 28/28 28/28 28/28 28/28 28/28 18/19 op:dayTimeDuration-greater-than 28/28 28/28 28/28 28/28 28/28 28/28 28/28 28/28 28/28 28/28 28/28 26/28 28/28 28/28 28/28 28/28 28/28 28/28 28/28 18/19 op:duration equal 129/129 129/129 129/129 129/129 129/129 129/129 129/129 129/129 129/129 129/129 129/129 91/129 129/129 129/129 129/129 129/129 128/129 129/129 129/129 17/19 op:dateTime-equal 52/52 52/52 52/52 52/52 52/52 52/52 52/52 52/52 52/52 52/52 52/52 28/52 52/52 52/52 52/52 52/52 52/52 52/52 52/52 18/19 op:dateTime-less-than 28/28 28/28 28/28 28/28 28/28 28/28 28/28 28/28 28/28 28/28 28/28 28/28 28/28 28/28 28/28 28/28 28/28 28/28 28/28 19/19 op:dateTime-greater-than 28/28 28/28 28/28 28/28 28/28 28/28 28/28 28/28 28/28 28/28 28/28 28/28 28/28 28/28 28/28 28/28 28/28 28/28 28/28 19/19 op:date-equal 28/28 28/28 28/28 28/28 28/28 28/28 28/28 28/28 28/28 28/28 28/28 28/28 28/28 28/28 28/28 28/28 28/28 28/28 28/28 19/19 op:date-less-than 30/30 30/30 30/30 30/30 30/30 30/30 30/30 30/30 30/30 30/30 30/30 29/30 30/30 30/30 30/30 30/30 30/30 30/30 30/30 18/19 op:date-greater-than 30/30 30/30 30/30 30/30 30/30 30/30 30/30 30/30 30/30 30/30 30/30 30/30 30/30 30/30 30/30 30/30 30/30 30/30 30/30 19/19 op:time-equal 40/40 40/40 40/40 40/40 40/40 40/40 40/40 40/40 40/40 40/40 40/40 28/40 40/40 40/40 40/40 40/40 40/40 40/40 40/40 18/19 op:time-less-than 30/30 30/30 30/30 30/30 30/30 30/30 30/30 30/30 30/30 30/30 30/30 30/30 30/30 30/30 30/30 30/30 30/30 30/30 30/30 19/19 op:time-greater-than 30/30 30/30 30/30 30/30 30/30 30/30 29/30 30/30 30/30 30/30 30/30 29/30 30/30 30/30 30/30 30/30 30/30 30/30 30/30 17/19 op:gYearMonth-equal 32/32 32/32 32/32 32/32 32/32 32/32 32/32 32/32 32/32 32/32 32/32 30/32 32/32 32/32 32/32 32/32 32/32 32/32 32/32 18/19 op:gYear-equal 32/32 32/32 32/32 32/32 32/32 32/32 32/32 32/32 32/32 32/32 32/32 31/32 32/32 32/32 32/32 32/32 31/32 31/32 32/32 16/19 op:gMonthDay-equal 31/31 31/31 31/31 31/31 31/31 31/31 31/31 31/31 31/31 31/31 31/31 30/31 31/31 31/31 31/31 31/31 31/31 31/31 31/31 18/19 op:gMonth-equal 31/31 31/31 31/31 31/31 31/31 31/31 31/31 31/31 31/31 31/31 31/31 0/31 31/31 31/31 31/31 31/31 31/31 31/31 31/31 18/19 op:gDay-equal 31/31 31/31 31/31 31/31 31/31 31/31 31/31 31/31 31/31 31/31 31/31 29/31 31/31 31/31 31/31 31/31 31/31 31/31 31/31 18/19 op:yearMonthDuration-equal 7/7 7/7 7/7 7/7 7/7 7/7 7/7 7/7 7/7 7/7 7/7 7/7 7/7 7/7 7/7 7/7 7/7 7/7 7/7 19/19 op:dayTimeDuration-equal 8/8 8/8 8/8 8/8 8/8 8/8 8/8 8/8 8/8 8/8 8/8 7/8 8/8 8/8 8/8 8/8 8/8 8/8 8/8 18/19 Comparison Operators on QName Values op:QName-equal 36/36 36/36 36/36 36/36 36/36 36/36 36/36 36/36 36/36 36/36 36/36 32/36 36/36 36/36 36/36 36/36 36/36 36/36 36/36 18/19 fn:prefix-from-QName 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 22/24 24/24 7/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 17/19 Comparison Operators on base64Binary and hexBinary Types op:hexBinary-equal 29/29 29/29 29/29 29/29 29/29 29/29 29/29 29/29 29/29 29/29 29/29 29/29 29/29 29/29 29/29 29/29 29/29 29/29 29/29 19/19 op:base64Binary-equal 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 26/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 18/19 Comparison Operators on NOTATION Types op:NOTATION-equal Type Checking and Error Handling 42/42 42/42 42/42 42/42 42/42 42/42 42/42 42/42 42/42 42/42 42/42 27/42 42/42 42/42 42/42 42/42 42/42 42/42 42/42 18/19 Comparison of String Values xs:string eq/ne xs:string 5/5 5/5 5/5 5/5 5/5 5/5 5/5 5/5 5/5 5/5 5/5 5/5 5/5 5/5 5/5 5/5 5/5 5/5 5/5 19/19 xs:string gt/ge xs:string 5/5 5/5 5/5 5/5 5/5 5/5 5/5 5/5 5/5 5/5 5/5 5/5 5/5 5/5 5/5 5/5 5/5 5/5 5/5 19/19 xs:string lt/le xs:string 5/5 5/5 5/5 5/5 5/5 5/5 5/5 5/5 5/5 5/5 5/5 5/5 5/5 5/5 5/5 5/5 5/5 5/5 5/5 19/19 Comparison of AnyURI Values xs:anyURI eq/ne xs:anyURI 14/14 14/14 14/14 14/14 14/14 14/14 14/14 14/14 14/14 14/14 14/14 6/14 14/14 14/14 14/14 14/14 14/14 14/14 14/14 18/19 General Comparisons The "=" operator for general comparisons 158/158 158/158 158/158 158/158 158/158 158/158 158/158 158/158 158/158 158/158 158/158 138/158 158/158 158/158 158/158 158/158 157/157 157/157 157/157 18/19 The "!=" operator for general comparisons 140/140 140/140 140/140 140/140 140/140 140/140 140/140 140/140 140/140 140/140 140/140 126/140 140/140 140/140 140/140 140/140 139/139 139/139 139/139 18/19 The "< (less than)" operator for general comparisons 119/119 119/119 119/119 119/119 119/119 119/119 119/119 119/119 119/119 119/119 118/119 103/119 119/119 119/119 119/119 119/119 118/118 118/118 118/118 17/19 The "<= (less than or equal)" operator for general comparisons 108/108 108/108 108/108 108/108 108/108 108/108 108/108 108/108 108/108 108/108 107/108 94/108 108/108 108/108 108/108 108/108 108/108 108/108 108/108 17/19 The "> (greater than)" operator for general comparisons 118/118 118/118 118/118 118/118 118/118 118/118 118/118 118/118 118/118 118/118 117/118 102/118 118/118 118/118 118/118 118/118 118/118 118/118 118/118 17/19 The ">= (greater than or equal)" operator for general comparisons 110/110 110/110 110/110 110/110 110/110 110/110 110/110 110/110 110/110 110/110 109/110 95/110 110/110 110/110 110/110 110/110 109/109 109/109 109/109 17/19 Node Comparisons op:is-same-node 28/28 28/28 28/28 28/28 28/28 28/28 28/28 28/28 28/28 28/28 28/28 20/28 28/28 28/28 28/28 28/28 27/27 27/27 27/27 18/19 op:node-before 33/33 33/33 33/33 33/33 33/33 33/33 33/33 33/33 33/33 33/33 33/33 20/33 33/33 33/33 33/33 33/33 25/26 26/26 26/26 17/19 op:node-after 33/33 33/33 33/33 33/33 33/33 33/33 33/33 33/33 33/33 33/33 33/33 20/33 33/33 33/33 33/33 33/33 25/26 26/26 26/26 17/19 Operators on Sequences op:union 23/23 23/23 23/23 23/23 23/23 23/23 23/23 23/23 23/23 21/23 23/23 22/23 23/23 23/23 23/23 23/23 18/23 23/23 23/23 16/19 op:intersect 23/23 23/23 23/23 23/23 23/23 23/23 23/23 23/23 23/23 22/23 23/23 21/23 23/23 23/23 23/23 22/23 20/23 23/23 23/23 15/19 op:except 23/23 23/23 23/23 15/23 23/23 23/23 23/23 23/23 23/23 21/23 23/23 20/23 23/23 23/23 23/23 22/23 22/23 23/23 23/23 14/19 Logical Expressions 364/364 364/364 364/364 364/364 364/364 364/364 364/364 364/364 364/364 364/364 364/364 363/364 364/364 364/364 364/364 364/364 364/364 364/364 364/364 18/19 Constructors Direct Element Constructors 229/232 229/232 223/232 207/232 226/232 232/232 231/232 232/232 232/232 220/232 230/232 167/232 226/232 226/232 232/232 200/232 181/210 204/210 204/210 4/19 Attributes 51/51 48/51 51/51 42/51 48/51 51/51 51/51 51/51 51/51 51/51 51/51 42/51 50/51 50/51 51/51 40/51 27/38 36/38 38/38 10/19 Namespace Declaration Attributes 29/29 29/29 29/29 29/29 29/29 29/29 28/29 29/29 29/29 29/29 29/29 17/29 28/29 28/29 29/29 22/29 23/29 27/29 27/29 11/19 Content 79/82 82/82 73/82 76/82 79/82 82/82 82/82 82/82 82/82 75/82 80/82 55/82 78/82 80/82 82/82 77/82 68/77 75/77 73/77 6/19 White Space Element Content 57/57 57/57 57/57 47/57 57/57 57/57 57/57 57/57 57/57 52/57 57/57 53/57 57/57 57/57 57/57 52/57 54/57 57/57 57/57 14/19 Other Direct Constructors 20/20 20/20 20/20 20/20 20/20 20/20 20/20 20/20 20/20 18/20 20/20 19/20 20/20 20/20 20/20 19/20 10/12 12/12 12/12 15/19 Computed Constructors Computed Element Constructors 51/51 51/51 49/51 49/51 51/51 51/51 51/51 51/51 51/51 49/51 51/51 46/51 51/51 51/51 51/51 50/51 50/51 51/51 51/51 13/19 Computed Attribute Constructors 33/33 33/33 33/33 32/33 33/33 33/33 33/33 33/33 33/33 32/33 33/33 33/33 32/33 33/33 33/33 31/33 32/33 33/33 33/33 14/19 Document Node Constructors 24/24 24/24 22/24 24/24 24/24 22/24 24/24 24/24 24/24 23/24 24/24 20/24 24/24 24/24 24/24 21/24 21/24 24/24 24/24 13/19 Text Node Constructors 20/20 20/20 20/20 16/20 20/20 20/20 20/20 20/20 20/20 20/20 20/20 17/20 20/20 20/20 20/20 19/20 20/20 20/20 20/20 16/19 Computed Processing-instruction Constructors 41/41 41/41 41/41 41/41 41/41 41/41 41/41 41/41 41/41 41/41 41/41 34/41 41/41 41/41 41/41 41/41 38/40 40/40 40/40 17/19 Computed Comment Constructors 21/21 21/21 21/21 19/21 21/21 21/21 21/21 21/21 21/21 21/21 21/21 21/21 21/21 21/21 21/21 21/21 19/21 21/21 21/21 17/19 In-scope Namespaces of a Constructed Element 20/20 20/20 20/20 19/20 20/20 20/20 16/20 20/20 20/20 20/20 20/20 10/20 20/20 20/20 20/20 20/20 16/20 20/20 20/20 15/19 Tests of For-Let-Where-OrderBy-Return Expressions FOR Clause FOR Clause without TypeDeclaration 87/87 87/87 87/87 87/87 87/87 87/87 87/87 87/87 87/87 87/87 87/87 71/87 87/87 87/87 87/87 86/87 76/76 76/76 76/76 17/19 FOR Clause with TypeDeclaration 55/55 55/55 55/55 55/55 55/55 54/55 53/55 55/55 55/55 54/55 55/55 26/55 55/55 55/55 55/55 44/55 49/51 51/51 51/51 13/19 FOR Clause with a Positional Variable 30/30 30/30 30/30 30/30 30/30 30/30 30/30 30/30 30/30 30/30 30/30 24/30 30/30 30/30 30/30 30/30 29/29 29/29 29/29 18/19 LET Clause LET Clause without TypeDeclaration 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 22/27 27/27 27/27 27/27 27/27 25/25 25/25 25/25 18/19 LET Clause with TypeDeclaration 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 23/24 24/24 24/24 24/24 18/19 WHERE Clause 40/40 40/40 40/40 39/40 40/40 40/40 40/40 40/40 40/40 39/40 40/40 39/40 40/40 40/40 40/40 37/40 37/37 37/37 37/37 15/19 ORDER BY Clause ORDER BY Clause with OrderModifier 106/106 106/106 106/106 106/106 106/106 106/106 106/106 106/106 106/106 106/106 106/106 45/106 106/106 106/106 106/106 105/106 89/106 106/106 106/106 16/19 ORDER BY Clause without OrderModifier 40/40 40/40 40/40 40/40 40/40 40/40 40/40 40/40 40/40 40/40 40/40 25/40 40/40 40/40 40/40 40/40 29/40 40/40 40/40 17/19 RETURN Clause 20/20 19/20 20/20 20/20 20/20 20/20 20/20 20/20 20/20 20/20 20/20 20/20 20/20 20/20 20/20 20/20 17/17 17/17 17/17 18/19 Ordered and Unordered Expressions 26/26 26/26 26/26 26/26 26/26 26/26 26/26 26/26 26/26 26/26 26/26 16/26 26/26 26/26 26/26 24/26 24/24 24/24 24/24 17/19 Conditional Expressions 32/32 32/32 32/32 32/32 32/32 32/32 32/32 32/32 32/32 32/32 32/32 32/32 32/32 32/32 32/32 32/32 31/31 31/31 31/31 19/19 Quantified Expressions Quantified Expressions Without TypeDeclaration 158/158 158/158 158/158 158/158 158/158 158/158 158/158 158/158 158/158 158/158 158/158 134/158 158/158 158/158 158/158 158/158 154/154 154/154 154/154 18/19 Quantified Expressions With TypeDeclaration 30/30 30/30 30/30 30/30 30/30 30/30 30/30 30/30 30/30 22/30 30/30 21/30 30/30 30/30 30/30 30/30 26/26 26/26 26/26 17/19 Expressions on Sequence Types Instance Of 176/176 176/176 176/176 176/176 176/176 176/176 175/176 176/176 176/176 176/176 176/176 150/176 176/176 174/176 176/176 172/176 174/174 172/174 174/174 14/19 Typeswitch 36/36 36/36 36/36 36/36 36/36 36/36 36/36 36/36 36/36 36/36 36/36 22/36 36/36 35/36 36/36 36/36 23/34 25/34 34/34 15/19 Cast from Derived types 21/21 21/21 21/21 21/21 21/21 21/21 21/21 21/21 21/21 21/21 21/21 21/21 21/21 21/21 21/21 21/21 19/21 21/21 21/21 18/19 Cast from Derived types To Parents 21/21 21/21 21/21 21/21 21/21 21/21 21/21 21/21 21/21 21/21 21/21 21/21 21/21 21/21 21/21 21/21 21/21 21/21 21/21 19/19 Casting within a branch of the type hierarchy 21/21 21/21 21/21 21/21 21/21 21/21 21/21 21/21 21/21 21/21 21/21 21/21 21/21 21/21 21/21 21/21 21/21 21/21 21/21 19/19 Cast 2207/2207 2207/2207 2207/2207 2207/2207 2207/2207 2207/2207 2205/2207 2207/2207 2207/2207 2206/2207 2207/2207 1999/2207 2207/2207 2207/2207 2201/2207 2192/2207 2193/2200 2199/2200 2194/2200 11/19 Castable 688/688 687/688 688/688 688/688 688/688 688/688 688/688 688/688 688/688 686/688 687/688 652/688 688/688 688/688 688/688 679/688 675/679 677/679 679/679 12/19 Treat 43/43 43/43 43/43 43/43 43/43 43/43 43/43 43/43 43/43 43/43 43/43 39/43 43/43 43/43 43/43 39/43 33/42 42/42 42/42 16/19 Modules and Prologs Version Declaration 27/27 26/27 26/27 27/27 27/27 27/27 27/27 27/27 27/27 26/27 27/27 17/27 26/27 26/27 27/27 22/27 20/25 21/25 21/25 9/19 Boundary-space Declaration 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 22/27 27/27 27/27 27/27 27/27 22/26 24/26 24/26 15/19 Default Collation Declaration 7/7 7/7 7/7 7/7 7/7 7/7 7/7 7/7 7/7 7/7 7/7 4/7 6/7 7/7 7/7 5/7 3/7 4/7 4/7 13/19 Copy Namespaces Declaration 26/27 26/27 12/27 21/27 15/27 27/27 27/27 27/27 27/27 14/27 27/27 6/27 4/27 25/27 27/27 23/27 8/25 23/25 23/25 6/19 Base URI Declaration 30/30 25/30 30/30 30/30 27/30 30/30 30/30 30/30 30/30 29/30 26/30 18/30 29/30 23/30 30/30 28/30 22/30 19/30 27/30 8/19 Construction Declaration 25/25 25/25 10/25 25/25 25/25 25/25 25/25 25/25 25/25 25/25 25/25 3/25 25/25 24/25 25/25 25/25 21/24 22/24 22/24 13/19 Default Namespace Declaration 35/35 35/35 35/35 35/35 35/35 35/35 35/35 35/35 35/35 34/35 35/35 11/35 35/35 35/35 35/35 26/35 29/29 29/29 29/29 16/19 Ordering Mode Declaration 25/25 25/25 25/25 25/25 25/25 25/25 25/25 25/25 25/25 25/25 25/25 17/25 25/25 25/25 25/25 25/25 22/25 23/25 23/25 15/19 Empty Order Declaration 32/32 32/32 32/32 32/32 32/32 32/32 32/32 32/32 32/32 32/32 32/32 10/32 32/32 32/32 32/32 32/32 17/32 18/32 30/32 15/19 Namespace Declaration 34/34 34/34 34/34 33/34 34/34 34/34 34/34 34/34 34/34 34/34 34/34 27/34 34/34 34/34 34/34 31/34 31/32 32/32 32/32 15/19 Variable Declaration External Variable References without TypeDeclaration 23/23 23/23 23/23 23/23 23/23 23/23 23/23 23/23 23/23 0/23 22/23 12/23 23/23 22/23 23/23 23/23 8/23 22/23 23/23 13/19 External Variable References with TypeDeclatation 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 2/24 24/24 2/24 24/24 23/24 24/24 24/24 3/24 23/24 24/24 14/19 Internal Variable References without TypeDeclaration 76/76 76/76 76/76 76/76 76/76 76/76 75/76 76/76 76/76 76/76 76/76 65/76 76/76 69/76 76/76 75/76 72/76 69/76 76/76 13/19 Internal Variable References with TypeDeclatation 44/44 44/44 44/44 44/44 44/44 43/44 42/44 44/44 44/44 44/44 44/44 32/44 42/44 36/44 44/44 42/44 40/41 33/41 41/41 11/19 Function Declaration 99/100 99/100 100/100 87/100 100/100 100/100 97/100 100/100 100/100 99/100 99/100 64/100 97/100 99/100 100/100 66/100 85/90 89/90 90/90 7/19 Option Declaration Declaration 8/8 8/8 8/8 8/8 8/8 8/8 8/8 8/8 8/8 8/8 8/8 4/8 8/8 8/8 8/8 6/8 7/7 7/7 7/7 17/19 XQuery Comments 40/40 40/40 40/40 40/40 40/40 40/40 40/40 40/40 40/40 40/40 40/40 33/40 40/40 38/40 40/40 39/40 29/29 29/29 29/29 16/19 Extension Expression 50/50 50/50 50/50 49/50 50/50 50/50 50/50 50/50 50/50 38/50 50/50 41/50 50/50 49/50 50/50 50/50 38/39 38/39 39/39 13/19 Implicit Context Functions Accessor Functions fn:node-name 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 23/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 18/19 fn:nilled 26/26 26/26 26/26 26/26 26/26 26/26 26/26 26/26 26/26 26/26 26/26 24/26 26/26 26/26 26/26 24/26 26/26 26/26 26/26 17/19 fn:string 48/48 48/48 48/48 48/48 48/48 48/48 48/48 48/48 48/48 48/48 48/48 47/48 47/48 48/48 48/48 48/48 47/48 48/48 48/48 16/19 fn:data 43/43 43/43 43/43 43/43 43/43 43/43 43/43 43/43 43/43 43/43 43/43 43/43 43/43 43/43 43/43 43/43 43/43 43/43 43/43 19/19 fn:base-uri 25/25 24/25 25/25 24/25 24/25 25/25 25/25 25/25 25/25 24/25 21/25 22/25 24/25 24/25 25/25 25/25 24/25 24/25 25/25 9/19 fn:static-base-uri 17/17 17/17 17/17 17/17 17/17 17/17 17/17 17/17 17/17 17/17 17/17 15/17 17/17 16/17 17/17 17/17 17/17 16/17 17/17 16/19 fn:document-uri 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 15/24 24/24 24/24 24/24 24/24 18/24 24/24 24/24 17/19 The Error Function 59/59 59/59 59/59 59/59 59/59 59/59 59/59 59/59 59/59 59/59 59/59 6/59 59/59 59/59 59/59 59/59 57/59 59/59 59/59 17/19 The Trace Function 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 24/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 18/19 Constructor Functions fn:dateTime 49/49 49/49 49/49 49/49 49/49 49/49 49/49 49/49 49/49 49/49 46/49 6/49 49/49 44/49 49/49 49/49 44/49 44/49 49/49 14/19 Functions on Numeric Values fn:abs 131/131 131/131 131/131 131/131 131/131 131/131 131/131 131/131 131/131 131/131 131/131 129/131 131/131 131/131 131/131 131/131 131/131 131/131 131/131 18/19 fn:ceiling 45/45 45/45 45/45 45/45 45/45 45/45 45/45 45/45 45/45 45/45 45/45 43/45 45/45 45/45 45/45 45/45 45/45 45/45 45/45 18/19 fn:floor 45/45 45/45 45/45 45/45 45/45 45/45 45/45 45/45 45/45 45/45 45/45 43/45 45/45 45/45 45/45 45/45 45/45 45/45 45/45 18/19 fn:round 48/48 48/48 48/48 48/48 48/48 48/48 48/48 48/48 48/48 48/48 48/48 41/48 48/48 48/48 48/48 48/48 48/48 48/48 48/48 18/19 fn:round-half-to-even 52/52 52/52 52/52 52/52 52/52 52/52 52/52 52/52 52/52 52/52 52/52 48/52 52/52 52/52 52/52 52/52 52/52 52/52 52/52 18/19 Functions on Strings Functions to Assemble and Disassemble Strings fn:codepoints-to-string 46/46 46/46 46/46 46/46 46/46 46/46 41/46 46/46 46/46 46/46 46/46 42/46 46/46 46/46 46/46 45/46 40/46 46/46 46/46 15/19 fn:string-to-codepoints 43/43 43/43 43/43 43/43 43/43 43/43 43/43 43/43 43/43 43/43 43/43 29/43 43/43 43/43 43/43 42/43 38/43 38/43 43/43 15/19 Equality and Comparison of Strings fn:compare 42/42 42/42 42/42 42/42 42/42 42/42 42/42 42/42 42/42 42/42 42/42 40/42 42/42 42/42 42/42 42/42 42/42 42/42 42/42 18/19 fn:codepoint-equal 21/21 21/21 21/21 21/21 21/21 21/21 21/21 21/21 21/21 21/21 21/21 19/21 21/21 21/21 21/21 21/21 21/21 21/21 21/21 18/19 Functions on String Values fn:concat 91/91 91/91 91/91 91/91 91/91 91/91 91/91 91/91 91/91 91/91 91/91 89/91 91/91 91/91 91/91 89/91 91/91 91/91 91/91 17/19 fn:string-join 33/33 33/33 33/33 33/33 33/33 33/33 33/33 33/33 33/33 33/33 33/33 30/33 33/33 33/33 33/33 33/33 33/33 33/33 33/33 18/19 fn:substring 36/36 36/36 36/36 36/36 36/36 36/36 36/36 36/36 36/36 36/36 36/36 7/36 36/36 36/36 36/36 36/36 36/36 36/36 36/36 18/19 fn:string-length 29/29 29/29 29/29 29/29 29/29 29/29 29/29 29/29 29/29 29/29 29/29 26/29 29/29 29/29 29/29 29/29 28/29 29/29 29/29 17/19 fn:normalize-space 35/35 35/35 35/35 35/35 35/35 35/35 35/35 35/35 35/35 35/35 35/35 19/35 35/35 35/35 35/35 35/35 33/35 35/35 35/35 17/19 fn:normalize-unicode 30/34 34/34 34/34 30/34 34/34 34/34 34/34 28/34 34/34 3/34 34/34 27/34 34/34 34/34 34/34 34/34 29/34 34/34 34/34 13/19 fn:upper-case 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 19/19 fn:lower-case 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 19/19 fn:translate 34/34 34/34 34/34 34/34 34/34 34/34 34/34 34/34 34/34 34/34 34/34 31/34 34/34 34/34 34/34 34/34 34/34 34/34 34/34 18/19 surrogate values for various string functions. 15/15 15/15 15/15 13/15 8/15 11/15 15/15 9/15 15/15 15/15 15/15 7/15 15/15 15/15 15/15 0/15 2/15 0/15 15/15 11/19 fn:encode-for-uri 29/29 29/29 29/29 29/29 29/29 29/29 29/29 29/29 29/29 29/29 29/29 6/29 29/29 29/29 29/29 24/29 27/29 27/29 29/29 15/19 fn:iri-to-uri 36/36 36/36 36/36 36/36 36/36 36/36 36/36 36/36 36/36 36/36 36/36 6/36 36/36 36/36 36/36 35/36 35/36 35/36 36/36 15/19 fn:escape-html-uri 33/33 33/33 33/33 33/33 33/33 33/33 33/33 33/33 33/33 33/33 33/33 27/33 33/33 33/33 33/33 33/33 29/33 31/33 33/33 16/19 Functions Based on Substring Matching fn:contains 32/32 32/32 32/32 32/32 32/32 32/32 31/32 32/32 32/32 32/32 32/32 28/32 32/32 32/32 32/32 31/32 32/32 32/32 32/32 16/19 fn:starts-with 32/32 32/32 32/32 32/32 32/32 32/32 31/32 32/32 32/32 32/32 32/32 27/32 32/32 32/32 32/32 32/32 32/32 32/32 32/32 17/19 fn:ends-with 31/31 31/31 31/31 31/31 31/31 31/31 30/31 31/31 31/31 31/31 31/31 23/31 31/31 31/31 31/31 31/31 31/31 31/31 31/31 17/19 fn:substring-before 31/31 31/31 31/31 31/31 31/31 31/31 30/31 31/31 31/31 31/31 31/31 27/31 31/31 31/31 31/31 31/31 31/31 31/31 31/31 17/19 fn:substring-after 32/32 32/32 32/32 32/32 32/32 32/32 31/32 32/32 32/32 32/32 32/32 20/32 32/32 32/32 32/32 32/32 32/32 32/32 32/32 17/19 String Functions that Use Pattern Matching fn:matches 55/55 46/55 55/55 54/55 47/55 55/55 52/55 52/55 55/55 48/55 52/55 27/55 55/55 55/55 55/55 52/55 2/55 55/55 55/55 9/19 fn:replace 52/52 52/52 52/52 52/52 52/52 52/52 51/52 52/52 52/52 51/52 52/52 46/52 52/52 52/52 52/52 51/52 1/52 52/52 52/52 14/19 fn:tokenize 39/39 39/39 39/39 39/39 39/39 39/39 39/39 39/39 39/39 39/39 39/39 9/39 39/39 39/39 39/39 38/39 2/39 39/39 39/39 16/19 Functions for anyURI fn:resolve-uri 29/29 27/29 29/29 29/29 28/29 29/29 29/29 29/29 29/29 29/29 27/29 22/29 29/29 29/29 29/29 28/29 27/29 29/29 29/29 13/19 Functions on Boolean Values fn:true 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 19/19 fn:false 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 24/24 19/19 fn:not 70/70 70/70 70/70 70/70 70/70 70/70 70/70 70/70 70/70 70/70 70/70 69/70 70/70 70/70 70/70 70/70 70/70 70/70 70/70 18/19 Functions on Durations, Dates and Times Component Extraction Functions on Durations, Dates and Times fn:years-from-duration 30/30 30/30 30/30 30/30 30/30 30/30 30/30 30/30 30/30 30/30 30/30 30/30 30/30 30/30 30/30 30/30 30/30 30/30 30/30 19/19 fn:months-from-duration 30/30 30/30 30/30 30/30 30/30 30/30 30/30 30/30 30/30 30/30 30/30 27/30 30/30 30/30 30/30 30/30 30/30 30/30 30/30 18/19 fn:days-from-duration 30/30 30/30 30/30 30/30 30/30 30/30 30/30 30/30 30/30 30/30 30/30 30/30 30/30 30/30 30/30 30/30 30/30 30/30 30/30 19/19 fn:hours-from-duration 30/30 30/30 30/30 30/30 30/30 30/30 30/30 30/30 30/30 30/30 30/30 29/30 30/30 30/30 30/30 30/30 30/30 30/30 30/30 18/19 fn:minutes-from-duration 31/31 31/31 31/31 31/31 31/31 31/31 31/31 31/31 31/31 31/31 31/31 30/31 31/31 31/31 31/31 31/31 31/31 31/31 31/31 18/19 fn:seconds-from-duration 31/31 31/31 31/31 31/31 31/31 31/31 31/31 31/31 31/31 31/31 31/31 24/31 31/31 31/31 31/31 31/31 28/31 31/31 31/31 17/19 fn:year-from-dateTime 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 26/27 27/27 27/27 18/19 fn:month-from-dateTime 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 19/19 fn:day-from-dateTime 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 19/19 fn:hours-from-dateTime 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 19/19 fn:minutes-from-dateTime 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 19/19 fn:seconds-from-dateTime 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 26/27 27/27 27/27 27/27 26/27 27/27 17/19 fn:timezone-from-dateTime 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 19/19 fn:year-from-date 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 26/27 27/27 27/27 18/19 fn:month-from-date 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 19/19 fn:day-from-date 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 19/19 fn:timezone-from-date 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 19/19 fn:hours-from-time 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 19/19 fn:minutes-from-time 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 19/19 fn:seconds-from-time 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 19/19 fn:timezone-from-time 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 27/27 19/19 Timezone Adjustment on Dates and Time Values fn:adjust-dateTime-to-timezone 42/42 42/42 42/42 42/42 42/42 42/42 42/42 42/42 42/42 42/42 42/42 31/42 42/42 42/42 42/42 42/42 40/42 42/42 42/42 17/19 fn:adjust-date-to-timezone 36/36 36/36 36/36 36/36 36/36 36/36 36/36 36/36 36/36 36/36 36/36 27/36 36/36 36/36 36/36 36/36 34/36 36/36 36/36 17/19 fn:adjust-time-to-timezone 39/39 39/39 39/39 39/39 39/39 39/39 39/39 39/39 39/39 39/39 39/39 33/39 39/39 39/39 39/39 39/39 36/39 39/39 39/39 17/19 Functions Related to QNames Additional Constructor Functions for QNames fn:resolve-QName 26/26 26/26 26/26 26/26 26/26 26/26 26/26 26/26 26/26 26/26 26/26 8/26 26/26 26/26 26/26 26/26 26/26 26/26 26/26 18/19 fn:QName 32/32 32/32 32/32 32/32 32/32 32/32 32/32 32/32 32/32 29/32 32/32 20/32 32/32 32/32 32/32 32/32 31/32 32/32 32/32 16/19 fn:local-name-from-QName 24/24 24/24 24/24 24/24 24/24 24/24 23/24 24/24 24/24 24/24 24/24 13/24 24/24 24/24 24/24 16/24 22/24 24/24 24/24 15/19 fn:namespace-uri-from-QName 26/26 26/26 26/26 26/26 26/26 26/26 26/26 26/26 26/26 26/26 26/26 16/26 26/26 26/26 26/26 18/26 24/26 26/26 26/26 16/19 fn:namespace-uri-for-prefix 23/23 23/23 23/23 23/23 23/23 23/23 23/23 23/23 23/23 23/23 23/23 9/23 23/23 23/23 23/23 23/23 21/23 23/23 23/23 17/19 fn:in-scope-prefixes 22/22 22/22 22/22 22/22 22/22 22/22 22/22 22/22 22/22 22/22 22/22 3/22 22/22 22/22 22/22 12/22 22/22 22/22 22/22 17/19 Functions on Nodes fn:name 26/26 26/26 26/26 26/26 26/26 26/26 26/26 26/26 26/26 26/26 26/26 13/26 26/26 26/26 26/26 25/26 24/26 26/26 26/26 16/19 fn:local-name 26/26 26/26 26/26 26/26 26/26 26/26 26/26 26/26 26/26 26/26 26/26 23/26 25/26 26/26 26/26 26/26 24/26 26/26 26/26 16/19 fn:namespace-uri 29/29 29/29 29/29 29/29 29/29 29/29 29/29 29/29 29/29 29/29 29/29 21/29 29/29 29/29 29/29 27/29 27/29 29/29 29/29 16/19 fn:number 60/60 57/60 60/60 60/60 60/60 60/60 60/60 60/60 60/60 60/60 57/60 55/60 58/60 60/60 60/60 60/60 56/60 60/60 60/60 14/19 fn:lang 29/29 29/29 29/29