Releases: ndw/sinclude
4.2.1
A small bug fix on the new utility method. It now preserves the base URI of the whole document.
4.2.0
This release just adds a new API, expandXIncludes(File input, File output)
that will expand the XIncludes in the input
file, serializing the result in the output
file.
Saxon XInclude version 4.1.0
In this release, access to the Saxon APIs has been rewritten to use reflection. This allows a single SInclude jar file to work with either Saxon 10 (and probably/possibly earlier releases) and Saxon 11. Maintaining parallel versions was causing too much complexity in downstream projects that use the XInclude library.
There should be no user-visible changes in this release.
Saxon XInclude version 4.0.0
This release fixes errors in the way same-document references were handled. Per section 4.2 of the spec:
[Definition: xi:include elements in this infoset are recursively processed to create the acquired infoset. For an intra-document reference (via xpointer attribute) the source infoset is used as the acquired infoset.]
For an intra-document (i.e, same document) reference, resolution is performed against the source document that contains the xi:include
, not against the the document with XIncludes expanded.
This required a change to an interface, so I bumped the version to 4.0.0. Processing is also performed in a single pass once again.
Same document references that use parse=text are tricky. If the document has a base URI, we attempt to load that URI as a text document. If that fails, we take the "string value" of the XML document. Neither is guaranteed to be precisely correct.
Saxon XInclude version 3.1.1
This release fixes a bug in parsing parentheses in fragment identifiers. I'd previously misunderstood the spec to say that all parentheses had to be escaped, but it very clearly says that only unbalanced parentheses have to be escaped.
I've also refactored the code a fair bit to try to improve fragment identifier processing in the face of both recursive XIncludes and XIncludes with same document references. The spec gives me a fair bit of latitude with respect to same document references. In 3.1.1, I attempt a two-pass approach. First any XIncludes that are not same document references are resolved, then, if any same document references were encountered, another pass is made to resolve them.
Saxon XInclude version 3.1.0
Technically, this should be 4.0 because it also introduces a backwards incompatible change. This time, to the DocumentResolver
interface. I've added support for passing the encoding to the text document resolver.
Saxon XInclude version 3.0.0
This release just cleans up the exceptions a little bit. It's a major release only because it includes a backwards incompatible change to the XIncludeIOException
. That exception now includes the URI of the document that caused it.
Saxon XInclude version 2.0.0
Continuing with the theme of cringe-worthy oversights, the copy attributes functionality of XInclude 1.1 was implemented completely incorrectly. I also added an API to enable or disable the copy attributes behavior. It remains enabled by default.
Saxon XInclude version 1.1.0
This release fixes a significant bug wherein if you configured a resolver and if the resolver failed to resolve the URI of a document, the XInclude function threw an NPE instead of attempting to use the original, unresolved URI for the document. blush