| Version 1.0 - Final release (Feb 13, 2005) |
- Now requires saxon-8.3 (bundled with the download).
- The obnoxious dependencies on jars for DOM Level 3, JAXP-1.3 and JaxMe
have now disappeared, even under JDK < 1.5! This functionality is nomore needed at all,
meaning less baggage, installation and classpath problems for all of us :-)
- XQuery/XPath: XPath axis navigation performance improvements in
net.sf.saxon.xom.NodeWrapper .
- XQuery/XPath: Now uses Saxon's cross-object model namespace handling.
- Added sample data directory with XML files and queries, as well as corresponding bnux binary XML files.
- Added simple XQuery and XPath benchmark.
See XQueryBenchmark.
- Added command-line demo that converts a set of standard textual XML files to and from binary xml (bnux) files.
See BinaryXMLConverter.
- Added
bin/ directory with Unix and Windows shell scripts to start the demos.
|
Version 1.0rc3 - Release Candidate (Jan 23, 2005) |
- XOM nomore requires Jaxen jar file unless really needed (soft dependency).
- XQuery/XPath: Added
explain() method returning a description of the compiled and optimized expression tree;
useful for advanced performance diagnostics only.
- XQuery/XPath: By default the
doc() function now uses a DocumentURIResolver
that uses a non-validating XOM Builder to parse documents.
This can be overriden by passing in your custom DocumentURIResolver.
- XQuery/XPath: By default a top-level atomic value in the result sequence is
converted to an Element named "atomic-value" with a child Text
node holding the atomic value's standard XPath 2.0 string representation.
An "atomic-value" element is decorated with a namespace and a W3C XML Schema type attribute.
The XPath 2.0 string representation continues to be accessible via
Node.getValue() .
Because XOM has no concept of a namespace node, the same conversion occurs for XPath namespace nodes in the result sequence.
(The standard XPath 2.0 string representation of a namespace node is its URI).
"Normal" nodes and anything not at top-level continue to be returned "as is", without conversion.
<atomic-value xsi:type="xs:integer" xmlns="http://dsd.lbl.gov/nux"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">1</atomic-value>
<atomic-value xsi:type="xs:string" xmlns="http://dsd.lbl.gov/nux"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">hello world</atomic-value>
<atomic-value xsi:type="xs:date" xmlns="http://dsd.lbl.gov/nux"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">2004-12-31</atomic-value>
|
Version 1.0rc2 - Release Candidate (Jan 17, 2005) |
- DOM Level 3 API (dom3-api.jar) is now also bundled
(required by Saxon >= 8.2 on JDK < 1.5)
- XQuery/XPath: now accepts any XOM Node as context node and as variables,
not just a ParentNode. A variable can now also be bound to a node list
(i.e. a XOM Nodes object).
This enables to pass the output of a query as input into another query.
- net.sf.saxon.xom.DocumentWrapper: id() function now finds first rather than last element
in invalid documents that have multiple elements with the same ID.
Performance is also improved via a hash index.
- XQueryUtil: added normalizeTexts() for fully standards-compliant
XPath and XQuery semantics in certain rare use cases.
- XQueryUtil: added efficient convenience method
"public static Nodes xquery(Node contextNode, String query)".
- XOMUtil.toByteArray(): more efficient implementation
- StreamingPathFilter: made checked exception into an unchecked exception.
- Existing client code continues to run unchanged.
|
Version 1.0rc1 - Release Candidate (Dec 24, 2004) |
- This release is synchronized and works in tandem with the
recent saxon-8.2 and xom-1.0 final releases.
- Nux now works with the recent saxon-8.2 release,
hence implementing W3C XQuery Working Draft 29 October 2004.
The download includes the saxon8.jar file from saxonb-8.2.
As far as we can tell from testing, it is not necessary to include any
JAXP-1.3 jars (i.e. dom.jar, jaxp-api.jar) in the classpath,
even when running saxon-8.2 with JDK < 1.5.
This is good news because it avoids licensing problems as well as classpath,
version, redistribution and deployment problems.
Let us know if you find Nux use cases where JAXP 1.3 is required.
In any case, this Nux release should continue to work fine with the old saxon-8.1.1.
- NodeWrapper for XQuery: Performance improvements for iteration over XPath axes.
Now performs queries at up to
2000 (100000) executions/sec over 100 (0.5) KB input documents = 200 (50) MB/s.
- Low-level glue for native Saxon integration of XOM is now separated
out into saxon8-xom.jar.
- Added simple command line demo that runs a given XQuery against a set of files
and prints the result sequence.
See XQueryCommand.
- BinaryXMLCodec: General performance and memory improvements.
Now parses up to 101 MB/s.
- Javadoc improvements
- Building nomore requires JUnit - simply type "ant jar"
|
Version 1.0beta2 (Nov 14, 2004) |
- Added class BinaryXMLCodec,
which serializes (encodes) and deserializes (decodes) XOM XML documents to and from
an efficient and compact custom binary XML data format (termed bnux
format), without loss or change of any information. Serialization and
deserialization is much faster than with the standard textual XML format, and
the resulting binary data is more compressed than textual XML.
- Requires a small backwards compatible
external patch
to the XOM DocType, making method
setInternalDTDSubset public.
Copy the file into the XOM source codebase, and rebuild XOM from source
with cd xom; ant jar
|
Version 1.0beta1 (Nov 2, 2004) |
- Versions are now labelled as "Beta", meaning: No known bugs exist, and no incompatible changes are planned.
Please stress this release to shake out any remaining bugs potentially lurking in remote corners.
- XQuery: properly convert orphan nodes handed from the wrapper.
- XOMUtil.toPrettyXML: remove trailing line break, if present.
- Javadoc improvements
- Changed BuilderFactory.createMSVBuilder(File) to BuilderFactory.createMSVBuilder(InputStream, URI)
In order to update to the new API, change client code like
File schema = ...
BuilderFactory factory = ...
Builder builder = factory.createMSVBuilder(schema);
to the new style, as follows:
File schema = ...
BuilderFactory factory = ...
Builder builder = factory.createMSVBuilder(
new FileInputStream(schema), schema.toURI());
|
Version 1.0a4 (Oct 22, 2004) |
- For simple and complex continuous queries and/or transformations over very large or infinitely long XML input documents,
we have added a convenient streaming path filter
API, combining full XQuery support with straightforward filtering.
- XOMUtil: Added a node factory that ignores Text nodes that consist of whitespace only.
- Fixed small bug in XQueryPool.getXQuery(Resolver)
- Faster XOMUtil.toPrettyXML
- Javadoc improvements
|
Version 1.0a3 (Oct 12, 2004) |
- Separated the patched class nu.xom.xslt.XSLTransform (LGPL licensed, copyright Elliotte Rusty Harold)
from the core library.
- If you want it, you can get the
external patch.
The patch adds an additional constructor (needed for thread-safety and flexibility) in a backwards compatible way.
Copy the file into the XOM source codebase, and rebuild XOM from source
with
cd xom; ant jar
- The license statement now makes it clear that package
net.sf.saxon.xom
is under the Mozilla license (co-developed with Michael Kay, the Saxon author).
|
Version 1.0a2 (Oct 11, 2004) |
- Added XQuery DocumentURIResolver for custom URI resolution
- XOMUtil.toPrettyXML now works for any type of node
- Removed old, long obsolete code
|
Version 1.0a1 (Oct 9, 2004) |
- Dramatic XQuery performance improvements through native Saxon integration
- Fixed a minor bug in native Saxon integration
- Renamed packages to nux.xom.*
- XQuery now throws XQueryException instead of ParsingException
- BuilderFactory: added clean fallback to other SAX Parsers or JAXP, if necessary
|
|