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 dev. 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.
XQuery XQueryX Feature xq2xsl xq2xsl Summary Minimal Conformance 14588 / 49 / 14637 14275 / 85 / 14637 0/2 Optional Features Schema Import Feature 0 / 0 / 174 0 / 0 / 174 0/2 Schema Validation Feature 0 / 0 / 25 0 / 0 / 25 0/2 Static Typing Feature 0 / 0 / 46 0 / 0 / 46 0/2 Full Axis Feature 130 / 0 / 130 130 / 0 / 130 2/2 Module Feature 30 / 2 / 32 29 / 2 / 32 0/2 Trivial XML Embedding Feature 0 / 0 / 4 0 / 0 / 4 0/2
xq2xsl
Organization: David Carlisle
http://monet.nag.co.uk/xq2xmlImplementation: xq2xsl Version: 20061026 xq2xsl
Organization: David Carlisle
http://monet.nag.co.uk/xq2xmlImplementation: xq2xsl Version: 20061026
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.
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.
Minimal Conformance
xq2xsl: not specified xq2xsl: not specified Schema Import
xq2xsl: false xq2xsl: false Schema Validation
xq2xsl: false xq2xsl: false Static Typing
xq2xsl: no xq2xsl: no Static Typing Extensions
xq2xsl: false xq2xsl: false Full Axis
xq2xsl: true xq2xsl: true Module
xq2xsl: true xq2xsl: true Serialization
xq2xsl: true xq2xsl: true Trivial XML Embedding
xq2xsl: not specified xq2xsl: not specified
[XQuery] The version of Unicode that is used to construct expressions.
xq2xsl: As used by Test Applet xq2xsl: As used by Test Applet [XQuery] The statically-known collations.
xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica [XQuery] The implicit timezone.
xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica [XQuery] The circumstances in which warnings are raised, and the ways in which warnings are handled.
xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica [XQuery] The method by which errors are reported to the external processing environment.
xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica [XQuery] Whether the implementation is based on the rules of [XML 1.0] and [XML Names] or the rules of [XML 1.1] and [XML Names 1.1]. One of these sets of rules must be applied consistently by all aspects of the implementation.
xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica [XQuery] Any components of the static context or dynamic context that are overwritten or augmented by the implementation.
xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica [XQuery] Which of the optional axes are supported by the implementation, if the Full-Axis Feature is not supported.
xq2xsl: all xq2xsl: all [XQuery] The default handling of empty sequences returned by an ordering key (sortspec) in an order by clause (empty least or empty greatest).
xq2xsl: empty first xq2xsl: empty first [XQuery] The names and semantics of any extension expressions (pragmas) recognized by the implementation.
xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica [XQuery] The names and semantics of any option declarations recognized by the implementation.
xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica [XQuery] Protocols (if any) by which parameters can be passed to an external function, and the result of the function can returned to the invoking query.
xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica [XQuery] The process by which the specific modules to be imported by a module import are identified, if the Module Feature is supported (includes processing of location hints, if any.)
xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica [XQuery] Any static typing extensions supported by the implementation, if the Static Typing Feature is supported.
xq2xsl: none xq2xsl: none [XQuery] The means by which serialization is invoked, if the Serialization Feature is supported.
xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica [XQuery] The default values for the byte-order-mark, encoding, media-type, normalization-form, omit-xml-declaration, standalone, and version parameters, if the Serialization Feature is supported.
xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica [XQuery] The result of an unsuccessful call to an external function (for example, if the function implementation cannot be found or does not return a value of the declared type).
xq2xsl: not specified xq2xsl: not specified [XQuery] Limits on ranges of values for various data types, as enumerated in 5.3 Data Model Conformance.
xq2xsl: not specified xq2xsl: not specified [FuncOps] The destination of the trace output is implementation-defined. See 4 The Trace Function.
xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica [FuncOps] For xs:integer operations, implementations that support limited-precision integer operations must either raise an error [err:FOAR0002] or provide an implementation-defined mechanism that allows users to choose between raising an error and returning a result that is modulo the largest representable integer value. See 6.2 Operators on Numeric Values.
xq2xsl: not specified xq2xsl: not specified [FuncOps] For xs:decimal values the number of digits of precision returned by the numeric operators is implementation-defined. See 6.2 Operators on Numeric Values. See also 17.1.3.3 Casting to xs:decimal and 17.1.3.4 Casting to xs:integer.
xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica [FuncOps] If the number of digits in the result exceeds the number of digits that the implementation supports, the result is truncated or rounded in an implementation-defined manner. See 6.2 Operators on Numeric Values. See also 17.1.3.3 Casting to xs:decimal and 17.1.3.4 Casting to xs:integer.
xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica [FuncOps] It is implementation-defined which version of Unicode is supported by the features defined in this specification, but it is recommended that the most recent version of Unicode be used. See 7.1 String Types.
xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica [FuncOps] For 7.4.6 fn:normalize-unicode, conforming implementations must support normalization form "NFC" and may support normalization forms "NFD", "NFKC", "NFKD", "FULLY-NORMALIZED". They may also support other normalization forms with implementation-defined semantics.
xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica [FuncOps] The ability to decompose strings into collation units suitable for substring matching is an implementation-defined property of a collation. See 7.5 Functions Based on Substring Matching.
xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica [FuncOps] All minimally conforming processors must support year values with a minimum of 4 digits (i.e., YYYY) and a minimum fractional second precision of 1 millisecond or three digits (i.e., s.sss). However, conforming processors may set larger implementation-defined limits on the maximum number of digits they support in these two situations. See 10.1.1 Limits and Precision.
xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica [FuncOps] The result of casting a string to xs:decimal, when the resulting value is not too large or too small but nevertheless has too many decimal digits to be accurately represented, is implementation-defined. See 17.1.1 Casting from xs:string and xs:untypedAtomic.
xq2xsl: not specified xq2xsl: not specified [FuncOps] Various aspects of the processing provided by 15.5.4 fn:doc are implementation-defined. Implementations may provide external configuration options that allow any aspect of the processing to be controlled by the user.
xq2xsl: not specified xq2xsl: not specified [FuncOps] The manner in which implementations provide options to weaken the stable characteristic of 15.5.6 fn:collection and 15.5.4 fn:doc are implementation-defined.
xq2xsl: not specified xq2xsl: not specified [DataModel] Support for additional user-defined or implementation-defined types is implementation-defined. (See 2.6.1 Representation of Types)
xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica [DataModel] Some typed values in the data model are undefined. Attempting to access an undefined property is always an error. Behavior in these cases is implementation-defined and the host language is responsible for determining the result. (See 5 Accessors)
xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica [Serialization] For any implementation-defined output method, it is implementation-defined whether sequence normalization process takes place. (See 2 Sequence Normalization)
xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica [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)
xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica [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)
xq2xsl: not specified xq2xsl: not specified [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)
xq2xsl: not specified xq2xsl: 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)
xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica [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)
xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica
Statically known namespaces
xq2xsl: predefined XQuery ones plus 'xsl' bound to the xslt namespace. xq2xsl: predefined XQuery ones plus 'xsl' bound to the xslt namespace. Default element/type namespace
xq2xsl: null xq2xsl: null Default function namespace
xq2xsl: xq2xsl: In-scope schema types
xq2xsl: none xq2xsl: none In-scope element declarations
xq2xsl: none xq2xsl: none In-scope attribute declarations
xq2xsl: none xq2xsl: none In-scope variables
xq2xsl: none xq2xsl: none Context item static type
xq2xsl: xs:integer xq2xsl: xs:integer Function signatures
xq2xsl: XSLT xq2xsl: XSLT Statically known collations
xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica Default collation
xq2xsl: Unicode codepoint xq2xsl: Unicode codepoint Construction mode
xq2xsl: xq2xsl: Ordering mode
xq2xsl: ordered xq2xsl: ordered Default order for empty sequences
xq2xsl: empty first xq2xsl: empty first Boundary-space policy
xq2xsl: strip xq2xsl: strip Copy-namespaces mode
xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica Base URI
xq2xsl: xq2xsl: Statically known documents
xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica Statically known collections
xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica Statically known default collection type
xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica
Context item
xq2xsl: 1 xq2xsl: 1 Context position
xq2xsl: 1 xq2xsl: 1 Context size
xq2xsl: 1 xq2xsl: 1 Variable values
xq2xsl: xq2xsl: Function implementations
xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica Current dateTime
xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica Implicit timezone
xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica Available documents
xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica Available collections
xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica Default collection
xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica xq2xsl: Depends on underlying XSLT engine, in this case: SAXON 8.8 from Saxonica
XQuery XQueryX Feature xq2xsl xq2xsl Summary Minimal Conformance Optional Feature Errors Single error code for extra features 18/18 14/18 1/2 XQuery Basics Static Context Evaluation 1/1 1/1 2/2 Query Types XQuery Sequence Type Syntax 21/21 21/21 2/2 XQuery Expressions Primary Expressions Literals 119/119 70/119 1/2 Parenthesized Expressions 20/20 20/20 2/2 Context Item Expressions External Context Item Expressions 24/24 24/24 2/2 Internal Context Item Expressions 21/21 21/21 2/2 Function Calls 28/28 23/28 1/2 Path Expressions General Path Expression Tests 1/1 1/1 2/2 Steps Axes 186/186 184/186 1/2 Node Tests NodeTest 24/24 24/24 2/2 NameTest 37/37 22/37 1/2 Predicates 44/44 44/44 2/2 Unabbreviated Syntax 26/26 26/26 2/2 Abbreviated Syntax 21/21 21/21 2/2 Sequence Expressions Constructing Sequences Comma Operator 54/54 54/54 2/2 Range Expression 65/65 65/65 2/2 Filter Expressions 116/116 111/116 1/2 Combining Node Sequences 20/20 20/20 2/2 Operators Arithmetic Operators Arithmetic Operators on Numeric Values op:numeric-add 137/137 137/137 2/2 op:numeric-subtract 107/107 107/107 2/2 op:numeric-multiply 79/79 76/79 1/2 op:numeric-divide 105/105 102/105 1/2 op:numeric-integer-divide 109/109 106/109 1/2 op:numeric-mod 58/58 55/58 1/2 op:numeric-unary-plus 51/51 51/51 2/2 op:numeric-unary-minus 52/52 52/52 2/2 Arithmetic Operators on Duration Values op:add-yearMonthDurations 24/24 24/24 2/2 op:subtract-yearMonthDurations 30/30 30/30 2/2 op:multiply-yearMonthDuration 37/37 37/37 2/2 op:divide-yearMonthDuration 27/27 27/27 2/2 op:divide-yearMonthDuration-by-yearMonthDuration 22/22 22/22 2/2 op:add-dayTimeDurations 24/24 24/24 2/2 op:subtract-dayTimeDurations 30/30 30/30 2/2 op:multiply-dayTimeDuration 32/32 32/32 2/2 op:divide-dayTimeDuration 36/36 36/36 2/2 op:divide-dayTimeDuration-by-dayTimeDuration 22/22 22/22 2/2 Arithmetic Operators on Duration and Date Time Values op:subtract-dateTimes-yielding-dayTimeDuration 26/26 26/26 2/2 op:subtract-dates-yielding-dayTimeDuration 26/26 26/26 2/2 op:subtract-times 29/29 29/29 2/2 op:add-yearMonthDuration-to-dateTime 26/26 26/26 2/2 op:add-dayTimeDuration-to-dateTime 24/24 24/24 2/2 op:subtract-yearMonthDuration-from-dateTime 21/21 21/21 2/2 op:subtract-dayTimeDuration-from-dateTime 20/20 20/20 2/2 op:add-yearMonthDuration-to-date 24/24 24/24 2/2 op:add-dayTimeDuration-to-date 22/22 22/22 2/2 op:subtract-yearMonthDuration-from-date 23/23 23/23 2/2 op:subtract-dayTimeDuration-from-date 21/21 21/21 2/2 op:add-dayTimeDuration-to-time 24/24 24/24 2/2 op:subtract-dayTimeDuration-from-time 26/26 26/26 2/2 Comparison Operators Value Comparison Comparison of Numeric Values op:numeric-equal 178/178 177/178 1/2 op:numeric-less-than 152/152 152/152 2/2 op:numeric-greater-than 88/88 88/88 2/2 Comparison Operators on Boolean Values op:boolean-equal 49/49 49/49 2/2 op:boolean-less-than 39/39 39/39 2/2 op:boolean-greater-than 39/39 39/39 2/2 Comparisons of Duration, Date Time Values op:yearMonthDuration-less-than 28/28 28/28 2/2 op:yearMonthDuration-greater-than 28/28 28/28 2/2 op:dayTimeDuration-less-than 28/28 28/28 2/2 op:dayTimeDuration-greater-than 28/28 28/28 2/2 op:duration equal 129/129 129/129 2/2 op:dateTime-equal 52/52 52/52 2/2 op:dateTime-less-than 28/28 28/28 2/2 op:dateTime-greater-than 28/28 28/28 2/2 op:date-equal 28/28 28/28 2/2 op:date-less-than 30/30 30/30 2/2 op:date-greater-than 30/30 30/30 2/2 op:time-equal 40/40 40/40 2/2 op:time-less-than 30/30 30/30 2/2 op:time-greater-than 30/30 30/30 2/2 op:gYearMonth-equal 32/32 32/32 2/2 op:gYear-equal 32/32 31/32 1/2 op:gMonthDay-equal 31/31 31/31 2/2 op:gMonth-equal 31/31 31/31 2/2 op:gDay-equal 31/31 31/31 2/2 op:yearMonthDuration-equal 7/7 7/7 2/2 op:dayTimeDuration-equal 8/8 8/8 2/2 Comparison Operators on QName Values op:QName-equal 36/36 36/36 2/2 fn:prefix-from-QName 24/24 24/24 2/2 Comparison Operators on base64Binary and hexBinary Types op:hexBinary-equal 29/29 29/29 2/2 op:base64Binary-equal 27/27 27/27 2/2 Comparison Operators on NOTATION Types op:NOTATION-equal Type Checking and Error Handling 42/42 42/42 2/2 Comparison of String Values xs:string eq/ne xs:string 5/5 5/5 2/2 xs:string gt/ge xs:string 5/5 5/5 2/2 xs:string lt/le xs:string 5/5 5/5 2/2 Comparison of AnyURI Values xs:anyURI eq/ne xs:anyURI 14/14 14/14 2/2 General Comparisons The "=" operator for general comparisons 158/158 157/158 1/2 The "!=" operator for general comparisons 140/140 139/140 1/2 The "< (less than)" operator for general comparisons 119/119 118/119 1/2 The "<= (less than or equal)" operator for general comparisons 108/108 108/108 2/2 The "> (greater than)" operator for general comparisons 118/118 118/118 2/2 The ">= (greater than or equal)" operator for general comparisons 110/110 109/110 1/2 Node Comparisons op:is-same-node 28/28 27/28 1/2 op:node-before 33/33 26/33 1/2 op:node-after 33/33 26/33 1/2 Operators on Sequences op:union 23/23 23/23 2/2 op:intersect 23/23 23/23 2/2 op:except 23/23 23/23 2/2 Logical Expressions 364/364 364/364 2/2 Constructors Direct Element Constructors 226/232 204/232 0/2 Attributes 50/51 36/51 0/2 Namespace Declaration Attributes 28/29 27/29 0/2 Content 80/82 75/82 0/2 White Space Element Content 57/57 57/57 2/2 Other Direct Constructors 20/20 12/20 1/2 Computed Constructors Computed Element Constructors 51/51 51/51 2/2 Computed Attribute Constructors 33/33 33/33 2/2 Document Node Constructors 24/24 24/24 2/2 Text Node Constructors 20/20 20/20 2/2 Computed Processing-instruction Constructors 41/41 40/41 1/2 Computed Comment Constructors 21/21 21/21 2/2 In-scope Namespaces of a Constructed Element 20/20 20/20 2/2 Tests of For-Let-Where-OrderBy-Return Expressions FOR Clause FOR Clause without TypeDeclaration 87/87 76/87 1/2 FOR Clause with TypeDeclaration 55/55 51/55 1/2 FOR Clause with a Positional Variable 30/30 29/30 1/2 LET Clause LET Clause without TypeDeclaration 27/27 25/27 1/2 LET Clause with TypeDeclaration 24/24 24/24 2/2 WHERE Clause 40/40 37/40 1/2 ORDER BY Clause ORDER BY Clause with OrderModifier 106/106 106/106 2/2 ORDER BY Clause without OrderModifier 40/40 40/40 2/2 RETURN Clause 20/20 17/20 1/2 Ordered and Unordered Expressions 26/26 24/26 1/2 Conditional Expressions 32/32 31/32 1/2 Quantified Expressions Quantified Expressions Without TypeDeclaration 158/158 154/158 1/2 Quantified Expressions With TypeDeclaration 30/30 26/30 1/2 Expressions on Sequence Types Instance Of 174/176 172/176 0/2 Typeswitch 35/36 25/36 0/2 Cast from Derived types 21/21 21/21 2/2 Cast from Derived types To Parents 21/21 21/21 2/2 Casting within a branch of the type hierarchy 21/21 21/21 2/2 Cast 2207/2207 2199/2207 1/2 Castable 688/688 677/688 1/2 Treat 43/43 42/43 1/2 Modules and Prologs Version Declaration 26/27 21/27 0/2 Boundary-space Declaration 27/27 24/27 1/2 Default Collation Declaration 7/7 4/7 1/2 Copy Namespaces Declaration 25/27 23/27 0/2 Base URI Declaration 23/30 19/30 0/2 Construction Declaration 24/25 22/25 0/2 Default Namespace Declaration 35/35 29/35 1/2 Ordering Mode Declaration 25/25 23/25 1/2 Empty Order Declaration 32/32 18/32 1/2 Namespace Declaration 34/34 32/34 1/2 Variable Declaration External Variable References without TypeDeclaration 22/23 22/23 0/2 External Variable References with TypeDeclatation 23/24 23/24 0/2 Internal Variable References without TypeDeclaration 69/76 69/76 0/2 Internal Variable References with TypeDeclatation 36/44 33/44 0/2 Function Declaration 99/100 89/100 0/2 Option Declaration Declaration 8/8 7/8 1/2 XQuery Comments 38/40 29/40 0/2 Extension Expression 49/50 38/50 0/2 Implicit Context Functions Accessor Functions fn:node-name 27/27 27/27 2/2 fn:nilled 26/26 26/26 2/2 fn:string 48/48 48/48 2/2 fn:data 43/43 43/43 2/2 fn:base-uri 24/25 24/25 0/2 fn:static-base-uri 16/17 16/17 0/2 fn:document-uri 24/24 24/24 2/2 The Error Function 59/59 59/59 2/2 The Trace Function 27/27 27/27 2/2 Constructor Functions fn:dateTime 44/49 44/49 0/2 Functions on Numeric Values fn:abs 131/131 131/131 2/2 fn:ceiling 45/45 45/45 2/2 fn:floor 45/45 45/45 2/2 fn:round 48/48 48/48 2/2 fn:round-half-to-even 52/52 52/52 2/2 Functions on Strings Functions to Assemble and Disassemble Strings fn:codepoints-to-string 46/46 46/46 2/2 fn:string-to-codepoints 43/43 38/43 1/2 Equality and Comparison of Strings fn:compare 42/42 42/42 2/2 fn:codepoint-equal 21/21 21/21 2/2 Functions on String Values fn:concat 91/91 91/91 2/2 fn:string-join 33/33 33/33 2/2 fn:substring 36/36 36/36 2/2 fn:string-length 29/29 29/29 2/2 fn:normalize-space 35/35 35/35 2/2 fn:normalize-unicode 34/34 34/34 2/2 fn:upper-case 24/24 24/24 2/2 fn:lower-case 24/24 24/24 2/2 fn:translate 34/34 34/34 2/2 surrogate values for various string functions. 15/15 0/15 1/2 fn:encode-for-uri 29/29 27/29 1/2 fn:iri-to-uri 36/36 35/36 1/2 fn:escape-html-uri 33/33 31/33 1/2 Functions Based on Substring Matching fn:contains 32/32 32/32 2/2 fn:starts-with 32/32 32/32 2/2 fn:ends-with 31/31 31/31 2/2 fn:substring-before 31/31 31/31 2/2 fn:substring-after 32/32 32/32 2/2 String Functions that Use Pattern Matching fn:matches 55/55 55/55 2/2 fn:replace 52/52 52/52 2/2 fn:tokenize 39/39 39/39 2/2 Functions for anyURI fn:resolve-uri 29/29 29/29 2/2 Functions on Boolean Values fn:true 24/24 24/24 2/2 fn:false 24/24 24/24 2/2 fn:not 70/70 70/70 2/2 Functions on Durations, Dates and Times Component Extraction Functions on Durations, Dates and Times fn:years-from-duration 30/30 30/30 2/2 fn:months-from-duration 30/30 30/30 2/2 fn:days-from-duration 30/30 30/30 2/2 fn:hours-from-duration 30/30 30/30 2/2 fn:minutes-from-duration 31/31 31/31 2/2 fn:seconds-from-duration 31/31 31/31 2/2 fn:year-from-dateTime 27/27 27/27 2/2 fn:month-from-dateTime 27/27 27/27 2/2 fn:day-from-dateTime 27/27 27/27 2/2 fn:hours-from-dateTime 27/27 27/27 2/2 fn:minutes-from-dateTime 27/27 27/27 2/2 fn:seconds-from-dateTime 26/27 26/27 0/2 fn:timezone-from-dateTime 27/27 27/27 2/2 fn:year-from-date 27/27 27/27 2/2 fn:month-from-date 27/27 27/27 2/2 fn:day-from-date 27/27 27/27 2/2 fn:timezone-from-date 27/27 27/27 2/2 fn:hours-from-time 27/27 27/27 2/2 fn:minutes-from-time 27/27 27/27 2/2 fn:seconds-from-time 27/27 27/27 2/2 fn:timezone-from-time 27/27 27/27 2/2 Timezone Adjustment on Dates and Time Values fn:adjust-dateTime-to-timezone 42/42 42/42 2/2 fn:adjust-date-to-timezone 36/36 36/36 2/2 fn:adjust-time-to-timezone 39/39 39/39 2/2 Functions Related to QNames Additional Constructor Functions for QNames fn:resolve-QName 26/26 26/26 2/2 fn:QName 32/32 32/32 2/2 fn:local-name-from-QName 24/24 24/24 2/2 fn:namespace-uri-from-QName 26/26 26/26 2/2 fn:namespace-uri-for-prefix 23/23 23/23 2/2 fn:in-scope-prefixes 22/22 22/22 2/2 Functions on Nodes fn:name 26/26 26/26 2/2 fn:local-name 26/26 26/26 2/2 fn:namespace-uri 29/29 29/29 2/2 fn:number 60/60 60/60 2/2 fn:lang 29/29 29/29 2/2 fn:root 28/28 28/28 2/2 Functions on Sequences General Functions and Operators on Sequences fn:boolean 122/122 122/122 2/2 fn:index-of 47/47 47/47 2/2 fn:empty 48/48 48/48 2/2 fn:exists 53/53 53/53 2/2 fn:distinct-values 86/86 86/86 2/2 fn:insert-before 41/41 41/41 2/2 fn:remove 44/44 44/44 2/2 fn:reverse 60/60 60/60 2/2 fn:subsequence 67/67 67/67 2/2 fn:unordered 31/31 31/31 2/2 Functions That Test the Cardinality of Sequences fn:zero-or-one 48/48 48/48 2/2 fn:one-or-more 48/48 48/48 2/2 fn:exactly-one 50/50 50/50 2/2 fn:deep-equal 156/156 156/156 2/2 Aggregate Functions fn:count 57/57 57/57 2/2 fn:avg 215/215 215/215 2/2 fn:max 172/172 172/172 2/2 fn:min 172/172 172/172 2/2 fn:sum 198/198 198/198 2/2 Functions that Generate Sequences fn:id 26/26 26/26 2/2 fn:idref 26/26 26/26 2/2 fn:doc-available 2/2 2/2 2/2 fn:doc 15/15 15/15 2/2 fn:collection 13/13 13/13 2/2 Context Functions fn:position 65/65 65/65 2/2 fn:last 51/51 51/51 2/2 fn:current-dateTime 26/26 26/26 2/2 fn:current-date 23/23 23/23 2/2 fn:current-time 22/22 22/22 2/2 fn:default-collation 5/5 5/5 2/2 fn:implicit-timezone 26/26 26/26 2/2 Optional Features Schema Import Feature FLWOR Expressions that requires a schema import 0/17 0/17 0/2 Computed Element Constructors 0/4 0/4 0/2 Version Declaration 0/2 0/2 0/2 Misc Functions that depends entirely on schema validation. 0/37 0/37 0/2 Cast 0/48 0/48 0/2 op:numeric-equal 0/2 0/2 0/2 op:NOTATION-equal 0/22 0/22 0/2 Constructor Functions for User Defined Functions 0/10 0/10 0/2 Schema Import 0/31 0/31 0/2 FOR Clause with TypeDeclaration 0/1 0/1 0/2 Schema Validation Feature Validate Expression 0/25 0/25 0/2 Static Typing Feature Static Typing of Path Expressions Static Typing of Steps Expressions Static Typing of Axes Steps 0/21 0/21 0/2