Qexo Implementation Status

This describes the status of the Qexo version 1.9.1.

Feature Summary

Qexo 1.9.1 implements most of the core XQuery specification, and passes over 98% of the XQuery Test Suite.

Qexo implements the Full Axis Feature.

Qexo implements the Module Feature.

Qexo implements the Serialization Feature. However, only some serialization parameters are settable.

Qexo does not implement the Schema Import Feature.

Qexo does not implement the Schema Validation Feature.

Qexo implements some ad-hoc static typing, but does not implement Static Typing Feature.

Atomic types


Except as noted below, all XQuery expression forms are handled.

Prologue declarations

Standard functions and operators

2 Accessors

These should all work correctly.

Note that nilled always returns false, since Qexo doesn't do validation.

3 The Error Function


4 The Trace Function


5 Constructor Functions

These should all work correctly.

6 Functions and Operators on Numerics

These should all work correctly.

7 Functions on Strings

These generally work correctly. A few of the functions do not support an optional collation argument.

Strings can contain characters outside the Unicode 16-bite base plane, and most operations correctly handle such characters using surrogate pairs. This means that an operation like string-length has to scan the string to see if there are any surrogate characters, rather than using the Java String.length() method. Some of the regex functions require JDK 1.5 or better to correctly handle surrogate charscters.

The regular expression (pattern patching) functions use the Java java.util.regex classes. These recognize a pattern syntax which is close to but not identical to that required by the Schema specification.

normalize-unicode only works if Kawa has been configured and built with --select-java6.

8 Functions and Operators for anyURI

These should all work correctly.

9 Functions and Operators on Boolean Values

These should all work correctly.

10 Functions and Operators on Durations, Dates and Times

These are all implememented and should work correctly. There a few edge cases not quite right, because we use java.util.Calendar in the implementation of the date and time classes, and Calendar doesn't completely match our needs.

11 Functions Related to QNames

These should all work correctly.

12 Functions and Operators on base64Binary and hexBinary

These should all work correctly.

13 Functions and Operators on NOTATION

This (i.e. op:NOTATION-equal) should work correctly.

14 Functions and Operators on Nodes

These should all work correctly.

15 Functions and Operators on Sequences

These generally work fine, expect:

16 Context Functions

These should all work.

17 Casting

These should all work.

Per Bothner