Note: This (incompletely) describes the status of the Kawa/Qexo 1.8 release.
Qexo only implements part of the XQuery types system. There is no support validation or Schema handling, and only some of the predefined types are recognized.
xs:QName
: Implemented using gnu.xml.SName
.
If Kawa is configured for JAXP 1.3 (or Java 5) then this class
extends javax.xml.namespace.QName
.xs:boolean
: Impleented using java.lang.Boolean
.xs:string
: Implemented using java.lang.String
.xs:integer
: Implemented using gnu.math.IntNum
.positiveInteger
: Implemented using gnu.math.IntNum
.nonPositiveInteger
: Implemented using gnu.math.IntNum
.negativeInteger
: Implemented using gnu.math.IntNum
.nonNegativeInteger
: Implemented using gnu.math.IntNum
.gnu.math.RealNum
.All path expressions are believed to work correctly. All axes (including optional ones, except the namespace axis) are implemented.
All direct and computed node constructors are believed to work correctly.
FLWOR expressions should work correctly.
No support for validation, and incomplete support for type testing.
typeswitch
works to the extent that Qexo understands the types.
The ordered
and unordered
expressions
are not implemented.
Except as noted, other expressions should work.
VarDecl
(declare variable
): Ok, including
support for external
variables.FunctionDecl
(declare function
): Ok, though no
support for external
functions yet.
No support yet for multiple functions with the same name but
different number of parameters.
Type conversion and casting behavior are uneven.
NamespaceDecl
(declare namespace
): Ok.
DefaultNamespaceDecl
(declare default (element/function) namespace
): Ok.DefaultCollationDecl
(declare default collection
): Ok. The default collection is set in the static context, but so far
nothing uses it. Also, only the default (code-point) collation works.BaseURIDecl
(declare base-uri
): Ok.
ConstructionDecl
(declare construction
): Not implemented.
SchemeImport
(import scheme
): Not imeplemented.ModuleImport
(module import
): Partial implementation.fn:node-name
: Ok.fn:nilled
: Not implemented.fn:string
: Ok.fn:data
: Not implemented.fn:base-uri
: Only the 1-argument version is implemented.fn:static-base-uri
: Not implemented.fn:document-uri
: Not implemented.Not implemented.
Ok.
xs:QName
implemented so far.xs:dateTime
: Not implemented.op:numeric-add
: Ok.op:numeric-subtract
: Ok.op:numeric-multiply
: Ok.op:numeric-divide
:
Implements the div
operator.
The div
operator on integer values returns
an exact fraction, which isn't as expected. Output may look
different, but arithmetic should work ok (if slower).op:numeric-integer-divide
: Not implemented.op:numeric-mod
: Ok.op:numeric-unary-plus
: Ok.op:numeric-unary-plus
: Ok.op:numeric-equal
: Ok.op:numeric-less-than
: Ok.op:numeric-greater-than
: Ok.fn:abs
: Not implemented.fn:ceiling
: Not implemented.fn:floor
: Not implemented.fn:round
: Not implemented.fn:round-half-to-even
: Not implemented.fn:codepoints-to-string
: Not implemented.fn:string-to-codepoints
: Not implemented.fn:compare
: Not implemented.fn:concat
: Ok.fn:string-join
: Ok.fn:substring
: Ok.fn:string-length
: Ok.fn:normalize-space
: Not implemented.fn:normalize-unicode
: Not implemented.fn:upper-case
: Ok.fn:lower-case
: Ok.fn:translate
: Ok.fn:escape-uri
: Not implemented.fn:contains
: Ok.fn:starts-with
: Ok.fn:ends-with
: Ok.fn:substring-before
: Ok.fn:substring-after
: Ok.fn:resolve-uri
: Not implemented.op:anyURI-equal
: Not implemented.fn:true
: Ok.fn:false
: Ok.op:boolean-equal
: Ok.op:boolean-less-than
: Ok.op:boolean-greater-than
: Ok.fn:not
: Ok.fn:resolve-QName
: Not implemented.fn:QName
: Ok.op:QName-equal
: Ok.fn:prefix-from-QName
: Ok.fn:local-name-from-QName
: Ok.fn:namespace-uri-from-QName
: Ok.fn:namespace-uri-for-prefix
: Ok.fn:in-scope-prefixes
: Not implemented.base64Binary
and hexBinary
NOTATION
fn:name
: Not implemented.fn:string(fn:node-name(node))
.)fn:local-name
: Ok.fn:namespace-uri
: Ok.fn:number
: Only 1-argument version is implemented.fn:lang
: Not implemented.op:is-same-node
(is
operator on nodes): Ok.op:node-before
(<<
operator on nodes): Ok.op:node-after
(>>
operator on nodes): Ok.fn:root
: Ok.fn:boolean
: Not implemented.fn:index-of
: Ok.fn:empty
: Ok.fn:exists
: Ok.fn:distinct-values
: Ok.fn:insert-before
: Not implemented.fn:remove
: Not implemented.fn:reverse
: Ok.fn:subsequence
: Not implemented.fn:unordered
: Not implemented.fn:zero-or-one
: Not implemented.fn:one-or-more
: Not implemented.fn:exactly-one
: Not implemented.fn:deep-equal
: Not implemented.op:union
: Ok.op:intersect
: Ok.op:except
: Ok.fn:count
: Ok.fn:avg
: Ok.fn:max
: Ok.fn:min
: Ok.fn:sum
: Ok.op:to
(implemnt to
operation): Ok.fn:id
: Not implemented.fn:idref
: Not implemented.fn:doc
: Ok.fn:doc-available
: Ok.fn:collection
: Not implemented.fn:position
: Ok.fn:last
: Ok.fn:current-dateTime
: Not implemented.fn:current-date
: Not implemented.fn:current-time
: Not implemented.fn:default-collation
: Not implemented.fn:implicit-timezone
: Not implemented.