File Release Notes and Changelog
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.