XQilla: an XQuery and XPath 2.0 library and command line interpreter. version 2.1.1 (2008.04.08): * Added the xqilla:parse-json() and xqilla:serialize-json() extension functions to parse and serialize JSON. * Added the xqilla:parse-html() function which uses HTML Tidy to parse HTML into XML. The function will not be compiled if TidyLib is not found. * Added fn:unparsed-text(), a function from XSLT 2.0 which can fetch a URL and return it as a string. * Added an xqilla:time() function which outputs the time taken to evaluate it's argument. * Added src/xercesc_content_type.patch which should be applied against Xerces-C 2.8 to fix an HTTP connection bug. * Added src/xercesc_regex.patch which should be applied against Xerces-C 2.8 to fix a regular expression bug in fn:replace(). * Added project files for Visual C++ 8, including 64 bit build targets. * Changed the default XQuery Update revalidation mode to LAX. * Fixed a bug in the lexing of element and attribute content in queries that incorrectly rejected certain Unicode characters. * Fixed a bug in external functions when used with modules. * Fixed a memory leak in the FastXDMURIResolver. * Fixed a segfault in XPath2ResultImpl if the results were only partially navigated. * Fixed a bug in XPath2ResultImpl where XQExceptions weren't being turned into XQillaExceptions. * Fixed XQilla to compile using Visual C++ 6. * Fixed compilation flags to work under HPUX. version 2.0.0 (2007.12.12): * Changed the license for XQilla to the Apache License v2, a more permissive open-source licence. * Implemented document projection, an optimisation technique that prunes sub-trees of documents not needed for the query at parse time. This is enabled by default. * Added a new extension function xqilla:parse-xml() which takes a string and parses it as an XML document. * Added optional support for using the FAXPP XML parser instead of the Xerces-C parser. * Added a command line option to the "xqilla" utility for binding external variables from the command line. * Implemented better error messages for type errors. * Modified the embedded MAPM library so we are now using it under the terms of the MIT licence. * Fixed miscellaneous bugs in the XQuery Update implementation. * Fixed a bug with the algorithm to add and subtract an xs:dayTimeDuration to or from an xs:date. * Fixed a bug in XercesNodeImpl which caused a segfault if the node was created as a value of a global variable in another module. version 1.1.0 (2007.08.31): * Added support for XQuery Update (Last Call Working Draft, 28 August 2007). * Added XQillaConfiguration, which encapsulates everything needed to create or use a new data model. * Implemented a new data model called FastXDM. It places nodes in a sequential array, and is much faster and more memory efficient than the DOM based data model. This is now the default data model. * Implemented XercesConfiguration, to enable use of the Xerces-C DOM based data model. * Implemented EventHandler, an event based execution interface. This is used primarily for efficient evaluation of constructed nodes. This can be invoked using XQQuery::execute(EventHandler*,DynamicContext*). * Added the ExternalFunction class, to allow users to easily implement XQuery external functions. * Added the MessageListener interface, to allow users to easily receive warning and trace messages. * Implemented closures, to enable the efficient and lazy execution of "let" expressions. * Implemented more lazy execution code for "order by" expressions * Added better error messages for sequence type checking errors. * Removed the XQDebugCallback API. * Rewrote the lexer and parser to be more memory efficient. * Rewrote "validate" expressions to be more memory efficient. * Modified the XQuery Test Suite runner to run the forthcoming XQuery Update test suite. * Made minor changes to allow compilation against the Xerces-C 2.8 release candidate. * Fixed a bug in the limit checking of the seconds field in the time when parsing. * Fixed modules so that the correct language is used to parse the module. * Fixed a bug in the code to create a new dynamic context for a module. * Fixed possible segmentation faults and memory leaks when using the DOM3 API * A number of other miscellaneous minor bug fixes. version 1.0.1 (2007.02.12): * Fixed fn:concat() to accept more than 51 arguments. * Fixed module parsing, to use the correct language enumeration when parsing. Output modules in the query plan. * Fixed a race condition in the parsing of function signatures. * Fixed parse errors in the DOM3 API, which were being thrown as XQException instead of XQillaException. [1626534] * Fixed the building of shared libraries under Cygwin, by adding -no-undefined to the libtool line in the Makefile. [1639669] * Fixed a bug in the static typing of user defined functions, that could result in incorrect errors.