Share

XQEngine - XML Query Engine

File Release Notes and Changelog

Release Name: 0.62 unzipped

Notes:
This is the *unzipped* version of the release. You can download component files one at a time.

Contents of full XQEngine package
---------------------------------
   o XQEngine.jar
   o source.zip
   o junit.jar
   o license
   o readme_v062.txt
   o GPL license
   o doc.zip (API JavaDocs)
   o data_files.zip :
         bib.xml
         bib_2.xml
         book.dtd
         book.xml
         report1.xml
         reviews.xml

The data files are included in the distribution *for reference only*. The versions of those files that are indexed and queried in the SampleApp sample application and JUnit tests are built into the XQEngine jar file and don't need to be placed on your drive to work.

To Do
-----
Lots still coming, including:

   o support for user-defined functions
   o support for additional XQuery keywords, including every and if
   o expand type support for decimals, doubles, probably cast as, treat as
   o expand function repetoire (greatly!)
   o redo internal implementation of parent (..) operator, which is still buggy
   o add virtual paging support for *extremely* large document collections
     (where index size > RAM) (in progress)
   o add support for faster full-text indexing option (in progress)
   o add pretty-printing option (rather crude at present)
   o expand predefinedEntityRefs and charRefs in stringLiterals and in
     element and attribute content
   o add support for computed element and attribute constructors
   o Nodes added to constructed element content are shallow-copied only, 
    so constructed nodes cannot be navigated into. To be fixed.

Changes: o added support for proper namespace searching, in which prolog namespace declarations need to be set before QName prefixes can be used in location-path queries. You can still do lexical prefix searching (no declarations required) if you invoke XQEngine.useLexicalPrefixes(true) first. (Default is false.) o SampleApp query panel is now larger, requires entry of a blank line to initiate the query, and outputs serialized XML to the Swing dialog and diagnostic debug information to the console. o XQEngine.setQuery() no longer references the debug flag in order to visualize the query AST. The AST's root is now returned in the ResultList and accessible by clients via RList.getAST(). See usage in SampleApp. o removed a number of instances of older unreferenced code. o started implementing code to allow switch-selectable explicit word indexing for large datasets, as well as the ability to choose between per-NodeTree vs global QName indexing. Both can improve query performance and are required to support persistent storage for large data and a virtual paging system. Ongoing ... o started implementation of persistent storage apis. Ongoing ... o WordListHashtable now supports linked lists of word xrefs by document to support explicit word indexing. IntList has accordingly been provided with an m_nextList field and relevant accessors. o removed PrintWriter argument from Dictionary.addWordEntry() and TextDictionary overrides as it's no longer in use. o fixed minor bug in which RList.m_tailDoc wasn't being updated properly in RList.replaceDocument(). o fixed off-by-one bug in ResultList.valueType() which would throw InvalidArrayIndex on some multi-file 'for' queries. o fixed bug in NodeTree.namedChildOfParent() in which an attribute search was returning duplicates. o fixed bug in Variables.evalVariableValue() which was causing the for-index to update incorrectly by not skipping invalid items, causing spurious results. Changed the internal call from RList.valueType() to RList.subscript(). o implemented WordListHashtable.rehash() properly so that the table rebuilds correctly for large data sets.