The World Wide Web Consortium (W3C) standardizes a set of XML processing languages, each with various variants or versions.
XQuery is the primary target language for Zorba, but most other processing languages above are also supported.
Below is a brief overview of the languages (or language variants) that are supported by Zorba:
XQuery version 1.0 and XQuery version 3.0 are both supported (note: there is no W3C XQuery 2.0 version!). The default version is XQuery 3.0. It can be changed to XQuery 1.0 by putting the following version declaration in the prolog of a main or library module:
xquery version "1.0";
Please note that XQuery 1.1 has been renamed to XQuery 3.0. XQuery 1.1 does not exist.
There are several XQuery features that can be enabled or disabled:
To read about how each of the features can be enabled or disabled, please refer to Zorba Specific Options and Annotations.
XML Schema validation is supported by default via the Xerces library. In case users do not want XML Schema validation, this feature can be disabled when Zorba is compiled. Specifically, the CMake variable ZORBA_NO_XMLSCHEMA must be set to "ON". For example:
cmake -D ZORBA_NO_XMLSCHEMA=ON <path_to_zorba_source>
XQuery Full Text Extension is supported by default. Please see Full Text for more details. The Full Text Extension increases memory usage during runtime. If you want to disable this feature, you can compile Zorba without Full Text support by setting the CMake variable ZORBA_NO_FULL_TEXT to "ON". For example:
cmake -D ZORBA_NO_FULL_TEXT=ON <path_to_zorba_source>
XQueryX is not supported by default for all the variants of XQuery (1.0, 3.0, Update, Full Text). In case XQueryX is needed, it can be enabled when Zorba is compiled by setting the CMake variable ZORBA_XQUERYX to "ON".
cmake -D ZORBA_XQUERYX=ON <path_to_zorba_source>
XSLT 1.0 is supported via the external library LibXSLT. For more information, please check the XSLT module. Zorba has no support yet for the upcoming standard XSLT 3.0. Please let us know if this is a language that Zorba should support.
XML Serialization is supported by default.
Note that XQuery version 3.0 is not a W3C Recommendation, yet. Zorba supports the June 2011 Working Draft. However, not all the features are implemented. Please see W3Q XQuery 3.0 Partial Support for the implemented XQuery 3.0 features.
Zorba has no support yet for the XML Pipeline Language XProc. Please let us know if this is a language that Zorba should support.
Zorba implements several extensions to XQuery that are missing from the W3C set of specifications, yet are absolutely necessary for complex data processing applications. The first one is the XQuery Data Definition Facility, that allows the declaration of collections, indexes, and integrity constraints. The other one is a XQuery Scripting Extension that allows side-effecting operations, assignable variables, and other similar procedural extensions to XQuery.
Please check the summary and the detailed XQuery W3C Test Suite results below:
Please also see our page about Known Issues.