Download XML Calabash
The most recent version of XML Calabash is 1.0.9.
The 1.0.9 release is only available for Saxon 9.4. There is a truly mystifying bug in the 9.3 branch[1] so I am not releasing it at this time.
Download the XML Calabash 1.0.9-94 installer or the basic ZIP file. It requires Saxon 9.4.x. It will not work with Saxon 9.3.x.
The ZIP file contains XML Calabash and a few libraries, as in the previous releases. The installer is an IzPack jar file that you can run with java -jar calabash-1.0.9-94.jar.
Recent changes
Changes in XML Calabash 1.0.9
Version 1.0.9 fixes a few bugs and, theoretically, can be downloaded via Maven.
-
Fixed issue #71: don't go trying to read the last modified time for documents on the source port.
-
Fixed issue #72: make sure that inline bindings take precedence over implicitly reading from stdin.
-
Fixed issue #75: make sure a null system identifier doesn't cause the resolver to NPE.
-
Fixed issue #80: don't automatically connect non-primary input ports to the default readable port.
-
Fixed issue #81: treat namespace nodes like attribute nodes.
-
Fixed issue #82: make sure that 'inner pipelines' in an cx:eval register extension functions with the correct context.
-
Fixed issue #86: use ByteArray instead of String to convert XdmNodes to InputSources.
-
Fixed issue #86: amended fix to make sure the base URI is preserved.
-
Fixed issue #89: added auth-method option; if auth-method is basic, pre-emptive authentication will be attempted.
-
Fixed issue #90: removed apparently dead code that was attempting to prematurely resolve the URI; verified that jar: URIs still work.
-
Added support for profiling, the ability to get a report for the amount of time spent processing each step.
-
Fixed bug where profiling two pipelines with the same runtime caused an error.
-
Added javadoc target.
-
Fixed build problems caused by FOP 1.1 apparently having removed some useful constants.
-
Attempt to configure the build scripts so that Maven artifacts can be built and staged.
Changes in XML Calabash 1.0.8
Version 1.0.8 fixes a few small issues identified in 1.0.6 (which was quietly released a short time ago) and supports a more generic pair of compress/uncompress steps.
-
Fixed issue #32: support UnparsedTextURIResolver in the p:xslt step.
-
Fixed issue #51: if we have to create an XMLReader, make sure it's namespace aware.
-
Amend patch for issue #63: make sure an XProcException changes the exit status as well.
-
Fixed issue #64: added com.xmlcalabash.config.{global,user,local} system properties to control loading of configuration files.
-
Implemented pxp:compress and pxp:uncompress steps.
Changes in XML Calabash 1.0.7
Version 1.0.7 was never actually released. It is or would be the same as 1.0.8 except that I seem to have messed up the commit order or something and pushed at the wrong time. Mea culpa. Nothing to see here, move along to 1.0.8.
Changes in XML Calabash 1.0.6
-
Fixed issue #39: use STDIN by default if there's no binding for the pipeline's primary input port.
-
Fixed issue #52: enable preemptive authentication in the XCC steps.
-
Fixed issue #57: honor the fail-on-error option in the fileutils delete step.
-
Fixed issue #60: merged in support for the Ant task; also added Ant to the distribution as a convenience.
-
Fixed issue #62: add support for Saxon 9.4's ExtensionFunction interface.
-
Fixed issue #63: exit with a non-zero status if the pipeline throws an exception.
-
Fixed issue #66: let unknown URI schemes pass through to the resolver.
-
Fixed issue #67: fix the URI of documents from redirected p:http-request requests.
-
Fixed issue #68: make the TypeUtils class dynamic rather than static so that multiple Saxon processors can be used.
-
Added experimental support for serialization attributes on pxp:zip manifest c:entry elements.
Changes in XML Calabash 1.0.5
-
Fixed a memory leak caused by thread local variables. If you're writing your own apps/extensions that use XML Calabash, you must call XProcRuntime.close() when you're done with the runtime object.
Changes in XML Calabash 1.0.4
Version 1.0.4 is a sort of “checkpoint” release. After not having time to work on XML Calabash for many months, I found when I returned to it that several of the unit tests were failing. I decided to work through getting the unit tests back to 100% before attempting to address any other sorts of outstanding bugs or feature requests. Hopefully, I'll be able to get to some of those in short(er) order.
-
Fixed a typo in undeclare-prefixes; the serializer was ignoring that attribute due to the typo.
-
Updated the version of xmlresolver.jar in the lib directory. I fixed several significant errors in the caching code of XML Resolver.
-
Fixed some bugs in the handling of p:namespaces.
-
Handle MIME id, description, and disposition on single-part POSTs.
-
Fixed bug with file:/// URIs in p:log elements.
-
Updated Saxon HE in lib.
-
Fixed an issue with redirects and local resources.
-
Added EBNF sources and tweaked a few of the compact syntax extensions. I've largely abandoned pursuit of a compact syntax, at least for the time being.
Changes in XML Calabash 1.0.3
-
Attempted to clarify license terms.
-
Fixed issue #41: make sure an encoding attribute is added to c:data elements when unzip base64 decodes the data.
-
Fixed issue #47: make sure -Xxpointer-on-text is enabled for the docs build (but note that the docs probably still don't build correctly for you).
-
Merged pull request for issue #48: propagate the p:error input in the Java exception and reorganize code to make it easy to extend both classes.
-
Merged pull request for issue #44: fix incorrect type on “uri” attribute in the declaration for the pxf:move step.
-
Merged pull request for issue #37: use bnd to build XML Calabash as an OSGi bundle.
-
Updated transparent-json documentation and examples per comments from Saašha Metsärantala.
-
Fixed issue #31: allow XSLT 3.0 stylesheets if Saxon PE or EE is being used; generally relax checking for XSLT version.
-
Added support for using an XSLT 1.0 processor for XSLT 1.0 stylesheets.
-
Make sure base URIs are passed down into unescaped markup in p:unescape-markup.
-
Attempt to make jar: URIs work correctly.
-
Fixed issue #28: make sure static base URI is set in XPath expressions.
Changes in XML Calabash 1.0.2
-
Fixed issue #28: make sure that the static base URI is available in XPath expressions.
-
Updated the extension library so that it contains all of the supported extension steps. Added the extension library URI to the reference documentation.
-
Fixed issue #26: support the recursive option on pxf:delete correctly.
-
Fixed issue #27: reworked namespace handling so that cx:namespace-delete works correctly.
-
Updated README, added notices for distributed libraries, improved documentation. Cleaned up the build system a bit. Added a (local) test suite for extension steps.
Changes in XML Calabash 1.0.1
-
Fixed a bug in serialization where some combinations of schema-valid/untyped documents weren't handled correctly. This release was never announced.
Changes in XML Calabash 1.0.0
-
Added explicit support for -v/--version option.
-
Documentation updates.
-
Fixed a build error that caused the manifest in the calabash.jar file to refer to the wrong directory.
Changes in XML Calabash 0.9.44
-
Refactored the parser so that recursive imports are now handled correctly.
-
Fixed bug where stdin was never closed in p:exec if the input was an empty sequence.
-
Fixed issue #25: make sure that cx:unzip and pxp:unzip are both configured.
Changes in XML Calabash 0.9.43
-
Fixed bug where underscores were improperly escaped in the “MarkLogic” flavor of JSON.
-
Introduced a fairly ugly hack to suppress XML parse errors when transparent JSON is enabled; parsing as JSON is part of the recovery so the error was premature.
-
Tweaked the build scripts so that IzPack is not required to build from sources.
Changes in XML Calabash 0.9.42
-
Added error handler in p:validate-with-xml-schema to make sure that validation errors are properly reported.
-
Fixed bug where attempts to create a PE or HE configuration sometimes silently failed and produced an HE configuration.
-
Fixed bug where variables were incorrectly identified as duplicated in the same scope.
-
Added cx:report-errors step.
-
Compile Schematron stylesheets in schema-aware mode if the document to be processed is typed.
-
Fixed bug in p:validate-with-schematron where a bad schema document caused a completely silent failure; now a useful error message is generated.
-
Added support for loading a Saxon configuration file; added cx:saxon-version and cx:saxon-edition system properties; documented configuration and system properties.
Changes in XML Calabash 0.9.41
-
Fixed issue #22: added support for new option to request the Saxon processor edition (independent of schema awareness).
-
Make sure that exactly one document is written to outputs that do not allow sequences.
-
Changed ReadablePipe/WritablePipe interfaces to support methods for interrogating whether or not sequences are allowed.
-
Attempted to improve StepErrorListener to present underlying error.
-
Added experimental cx:send-mail step.
-
Documented cx:depends-on attribute.
-
Fixed ValidateJing to allow the validator to report more than one error.
Changes in XML Calabash 0.9.40
-
Added text/json as a synonym for application/json.
-
Improve the error message associated with invalid p:inline content so that it includes the location of the error.
-
Resolved issue #21; add support for Saxon configuration properties in the confugration file.
-
Suppress stack traces on errors unless debugging is enabled.
Changes in XML Calabash 0.9.39
-
Fixed bug where namespace bindings on the label expression weren't provided when the expression was evaluated by p:label-elements.
Changes in XML Calabash 0.9.38
XML Calabash 0.9.38 was never announced.
-
Throw static error for missing option name, attempting to continue just generates an NPE anyway.
-
Support fail-on-error properly and fix typo in send-authorization for cxf:info.
-
Fixed bugs in cx:eval that caused the runtime to be copied incorrectly sometimes and incorrectly counted parameter input ports as primary.
-
Changed the format of the XProc configuration file to allow multiple QNames to be specified in a single implementation type.
-
Resolve issue #104, make sure calling extension functions in use-when doesn't cause an NPE.
-
Refactored serialization to use common code in S9apiUtils.
-
Removed bogus, out-of-date docs/ChangeLog and docs/BUGS files. Added some real documentation.
-
Added new system-property values to test for the presence of extensions.
-
Added non-conformant transparent-json extension that support five flavors of JSON transparently on http-request, store, document, and data.
-
Added cx:java-properties step.
-
Fixed bug where template reader in p:template wasn't getting reset.
-
Added support for charset parameter on cx:unzip.
Changes in XML Calabash 0.9.37
-
Refactored XML parsing code a bit to make sure that the appropriate URI and entity resolvers are used every time.
-
Attempted to fix problem where single-part HTTP POST/PUT bodies weren't decoded if they were base64 encoded in the c:body.
-
Added parameter support to the FOP implementation of p:xsl-formatter.
-
Added first attempt at reference documentation.
Changes in XML Calabash 0.9.36
-
Made the http://validator.nu/ parser the default parser for text/html content. Use the “html-parser” configuration option to specify “tagsoup” if you prefer the old behavior:
<cc:html-parser xmlns:cc="http://xmlcalabash.com/ns/configuration" value="tagsoup"/> -
Fixed bug where UTF-8/URI encoded strings were not first decoded when writing output files. (Thanks to George Bina for the patch.)
-
Catch missing names on p:with-options. (Instead of raising NPE! Thanks also to George Bina.)
Changes in XML Calabash 0.9.35
-
Added cx:copy-attributes extension to p:xinclude; if true, namespace qualified attributes on the xi:include element are copied through to the root elements of the included content.
-
Added support for RFC 5147 fragment identifiers in XInclude when parse="text". This is not standards compliant, you must use the -Xxpointer-on-text extension option to enable XPointers on XInclude when parse=text. The 'extension' element in a config file can also be used to specify this extension.
-
Fixed issue #158; make sure cx:zip preserves entry order. (Patch by Romain Deltour).
-
Tweaked p:xslt so that it preserves the base URI of the input document across transformations.
-
Improved the p:xsl-formatter step when using the RenderX engine. Send progress messages through the XProcListener.
-
Fixed issue #129; pass Jing line/column numbers through the error handler.
-
Fixed issue #4; added getStep() to DefaultStep to return the underlying XAtomicStep.
-
Added a cx:pretty-print step. It serializes and reparses its input document to add line breaks and indentation.
-
Added a cx:css-formatter step. It uses the AntennaHouse engine to format XML with CSS.
-
Fixed issue #134; applied Romain Deltour's patch. Rearranged code to make it easier for subclasses to change how step implementations are maintained and created.
-
Various build system tweaks to make compilation without commercial libraries easier.
Changes in XML Calabash 0.9.34
-
Fixed issue #152; make sure that $var='value' isn't misinterpreted as a simple variable reference.
-
Fixed issue #142; don't send xsl:message output to STDERR. Send it to the logger at the “info” level.
-
Attempted to address issue #153; make the XProcRuntime objects in extension functions thread local.
-
Attempted to address issue #125; don't treat warnings as errors. Just because XProc doesn't have any recoverable warnings doesn't mean that steps don't!
-
Fixed the calculation of effective boolean values in p:when tests.
-
Moved all warnings “down” one level. This will make XML Calabash much less “chatty” in the default case.
-
Stripped out all the “phone home” stuff.
-
Reworked p:xsl-formatter support. Added an interface and an fo-processor configuration file item to specify the desired FO processor.
-
Added support for Apache FOP XSL FO formatter.
-
Added support for Antenna House XSL FO formatter.
-
Added Florent Georges' “configurers” patch. You can now configure many aspects of the processor without modifying the original sources.
-
Made sure extension attributes are processed on all elements; added hook for an XStep to get access to the underlying Step for access to extension attributes on descendants.
-
Cleaned up the build.xml code.
-
Fixed a bug in ml:adhoc-query declaration; source does not accept a sequence.
Changes in XML Calabash 0.9.33
-
Handle namespace bindings correctly in variables, options, and parameters.
-
Make sure parameter names are computed correctly: names without colons are always in no namespace.
-
Make sure extension attributes (e.g. cx:depends-on) are processed by compound steps.
Changes in XML Calabash 0.9.32
-
Support p:template as the name of the document template step. The name p:document-template will continue to work for a while, but you should begin migrating to the new name.
-
Attempted to fix issue #130; make sure that system-property works in use-when clauses.
-
Attempted to fix issue #137 by making sure that p:variable bindings contribute to the dependency calculations. (I'm amazed this went unnoticed for so long!)
-
Attempted to fix issue #138 by applying the patch to handle the STORED compression setting.
Changes in XML Calabash 0.9.31
-
Fixed a bug in p:document-template where top-level comments and PIs would cause an NPE.
-
Did a bunch of internal build changes to support easier installation.
-
Built with Java 1.5 to support integrators still dependent on that version of Java.
Changes in XML Calabash 0.9.30
-
XML Calabash now uses/requires Saxon 9.3. I've tested against 9.3.0.4 though I expect other minor revisions to work as well.
Changes in XML Calabash 0.9.29
-
Updated p:document-template to support the most recent parsing rules.
-
Fixed several bugs in p:xinclude: implementation was so aggressive about loops that it didn't allow the same file to be included twice even when there wasn't a loop; fallback caused an NPE; and multiple XPointer schemes were parsed incorrectly.
-
Added support for application/json to p:unescape-markup. JSON is turned into XML per http://snelson.org.uk/archives/2008/02/parsing_json_in.php.
-
Fixed bugs in p:store and p:document-sequence where sequences were not always detected (sequences are an error).
-
Fixed bug in p:viewport where the requirement that the step have a primary output was not always enforced.
-
Fixed bug where two namespace declarations were sometimes output for the default namespace.
-
Fixed bug where command-line output filenames were URI encoded. That caused problems on Windows at least.
-
Fixed bug in the test suite driver where multiple input files weren't supported in a test case.
Versions 0.9.25-28 were never officially released.
Changes in XML Calabash 0.9.24
-
Added support for p:in-scope-names and p:document-template per the (not yet officially published) working group changes. (These are implemented in advance of specification, partly to see if we got the specification right; if the spec changes, I'll change the implementation, so use them with a grain of salt.)
-
Fixed bug in p:validate-with-relaxng where it didn't handle assert-valid="false" correctly.
-
Changed p:parameters so that namespace="" is written on the result c:param elements when the parameter is in no namespace. This is consistent with the test suite, but I'm not sure that I think it's the right thing.
-
Fixed bugs in p:xinclude; nested parenthesis were not parsed correctly in XPointer expressions, nor where escaped characters.
-
Fixed bugs in p:choose and p:try, where XML Calabash incorrectly required all of the outputs to have the same “sequence” setting.
-
Fixed bug in p:library where exclude-inline-prefixes was not allowed.
Changes in XML Calabash 0.9.23
-
Fixed a bug in WritableDocument that broke outputting to file: scheme URIs.
-
A few documentation tweaks.
Changes in XML Calabash 0.9.22
-
Starting with 0.9.22, XML Calabash is distributed with an IzPack installer.
-
Attempted to fix issue #120 by throwing err:XS0038 if a step or port is missing on a p:pipe.
-
Attempted to fix issue #119 by using “-” instead of “_” in language codes (for compatibility with xml:lang.
-
Attempted to fix issue #118 by applying the supplied patch.
-
Attempted to fix issue #117 by applying the supplied patch.
-
Attempted to fix issue #116 by applying the supplied patch.
-
Attempted to fix issue #114 by making sure namespaces are handled properly by receivers.
-
Attempted to fix issue #112 by using URIUtils instead of simple substring for file: URIs.
-
Attempted to fix issue #111 (and I believe issue #93) by adding getter/setter methods for the XProcMessageListener to XProcRuntime.
-
Attempted to fix issue #103 by making (p:)use-when valid everywhere.
-
Attempted to fix issue #101 by not relying on the base URI to resolve a particular detail of module importing.
-
Attempted to fix issue #85 by reusing Saxon's version of the code to resolve URIs.
-
Detect the case where there are outputs in the “try” branch of a p:try but not in the “catch” branch.
-
Added a few more jars to the lib directory.
-
Improved the error message associated with a missing required option.
-
Added support for pxp:nvdl and pxp:unzip. (The namespaces, the underlying steps have been supported in XML Calabash's extension namesapce for a while.)
Changes in XML Calabash 0.9.21
-
Attempted to improve error messages.
-
Fixed bug where prefix and local-name were processed incorrectly if an explicit parameter port was given on the command line.
-
Added err: prefix to standard error QNames (printed for static and dynamic errors).
-
Added cx:metadata-extractor extension step; a thin shell around Drew Noakes' library of the same name.
-
In p:http-request, throw err:XD0006 if detailed=false and there's no response body.
-
In p:xinclude, fixed bug where, when a sequence of children is selected by an XPointer expression, sometimes all but the last member of the sequence would be lost.
-
Improved error detection for some errors including random text between elements.
-
As a consequence of how non-XML data is handled by XProc, the p:http-request step usually sends binary data with a content-transfer-encoding of base64. If the new cx:send-binary extension attribute is set to true, the step will decode and send the data as raw binary.
-
Fixed a bug where options would sometimes not get passed through to a called XProc step.
-
In p:http-request, added support for a distribution attribute on c:body (needed for sending form data; this isn't in the spec yet but that's an oversight that will be fixed).
-
In p:parameters, if there's no namespace, don't output a namespace attribute on the c:param.
-
In p:hash, make sure byte values are padded to two characters when converting the binary hash to a string.
-
In p:wrap, fixed a bug where namespace bindings weren't available in the group-adjacent expression and errors were silently ignored.
-
In p:validate-with-relax-ng, fixed a bug where base64 encoded compact syntax schemas were not decoded before attempting validation.
Changes in XML Calabash 0.9.20
-
Fixed a bug where p:error would throw an NPE.
-
Fixed a bug in processing match patterns where all but the last item of an unwrapped sequence was lost.
-
Removed trailing slash from the output of the cwd() extension function.
-
Fixed a bug where cx:eval didn't accept p:declare-step pipelines. Also fixed a bug where the environment wasn't managed correctly.
-
Added a new atomic extension step, cx:namespace-delete which can do dynamically what exclude-result-prefixes does statically.
-
Fixed a bug in p:add-attribute where attribute namespaces would get mangled when the match pattern matched more than one element
-
Fixed bugs in XInclude processing.
-
Fixed bug where serialization parameters from the configuration file were never used. They're now used if the pipeline doesn't specify any serialization options. It would probably be good to provide more control over serialization optins.
-
Applied a patch to p:hash to support the Amazon hmac algorithm.
-
Fixed a bug where documents with more than one top-level element were not detected as being not well-formed.
-
Fixed issue #106: exclude-inline-prefixes of ancestors ignored.
-
Fixed issue #107: p:label-elements didn't set context.
-
Added a new compound extension step, cx:until-unchanged which provides “iterate to a fixed point” functionality.
-
Fixed the names of anonymous steps to conform to the specification.
-
Fixed a bug where p:http-request would throw an NPE in some circumstances if the server did not provide a content-type header. Also fixed a content-type/charset bug.
-
Attempted to clean up the info messages. Still lots of work to do in the area of messages and error reporting.
-
Added a new feature to cxf:head and cxf:tail: if count is negative, remove that many lines. So if count=2 in cx:head, you get the first two lines of the file; if count=-2 you get all but the first to lines.
-
In cxf:info, if the property attributes are false, omit them entirely.
-
Improved the ml:adhoc-query and ml:insert-document steps to allow text and binary objects to be used.
-
Implemented cookie handling in p:http-request; added new steps cx:get-cookies and cx:set-cookies to allow pipeline authors to manage cookies.
-
Make sure that a newline is output after the last line when output is going to stdout.
-
Detect and report misspellings of cx:depends-on.
-
Fixed bug where variable bindings were not always evaluated in the correct order.
-
Fixed bug where the default base URI wasn't calculated correctly in p:make-absolute-uris.
-
Fixed bug where an XIncluded xi:include element wasn't expanded.
-
Fixed bug where p:namespace-rename didn't always force namespaced attributes to have a prefix.
Changes in XML Calabash 0.9.19
-
Fixed the bug where I botched parameter and option handling in the simple pipeline case.
-
Fixed the bug where XML Calabash failed to notice when a select attribute was incorrectly placed on a p:for-each step.
Changes in XML Calabash 0.9.18
-
Renamed the shortcut option for debugging, -d, to -D.
-
Added a -d/--data-input option for loading non-XML from the command line. This option performs the same logic as p:data, wrapping the non-XML in a c:data wrapper.
-
Fixed a couple of bugs in cx:eval. Added documentation to the website.
-
Reworked command line parsing to support simple, linear pipelines.
-
On the command-line, the prefix “p” is bound to the XProc namespace by default.
-
It is no longer possible to put a library in the XML Calabash configuration file. I don't think it's necessary with the changes I've made to way command line pipelines are processed.
Changes in XML Calabash 0.9.17
-
Attempted to fix issue #64: deal with character sets correctly.
-
Updated p:http-request to support multipart requests.
-
Reworked error handling so that all messages go through an ErrorListener. (This will make it easier to integrate XML Calabash into other tools.)
-
Reworked the logging code to go through the ErrorListener.
-
Added error-listener configuration property.
-
Fixed bug where failure to construct the XProcRuntime object caused an NPE when attempting to report the error.
-
Fixed issue #84: resolve-uri with a single argument should use the static base URI.
-
Fixed issue #83: make -S less paranoid.
-
Updated ValidateWithXSD to clear the schema cache if it's possible. You are strongly encouraged to use Saxon 9.2.0.4 or later.
-
Added xmlunit.Compare step provided by Charles Foster.
-
Check for XSLT version correctly; force the XsltCompiler to perform a schema-aware compile if we're a schema-aware processor.
-
Fixed bugs in value-available; wasn't handling distinction between no declaration and no value correctly.
-
Support output-base-uri in p:xslt; handle the case where the primary result document is null.
-
Print a warning message if we ask for a schema aware processor but don't get one.
-
Implemented use-when.
-
Attempt to support XPointer framework links.
-
Fixed bug in p:label-elements where attributes weren't properly recognized.
Changes in XML Calabash 0.9.16
There was never an official release of 0.9.16.
Changes in XML Calabash 0.9.15
This release fixes a number of bugs and adds a few small (or incompletely implemented) features. It's likely to be the last release before I switch to Saxon 9.2 (HE).
-
Fixed issue #80: detect p:input/p:output elements that fail to specify a port.
-
Fixed bug where unencoded names in p:make-absolute-uris would cause IllegalArgumentException (e.g., from p:directory-list)
-
Fixed issue #72: applied patch to avoid NPE when no message is provided on an exception.
-
Support DELETE and preemptive authentication in p:http-request.
-
Added an extension attribute, cx:decode to p:store. If cx:decode=true and the input document is base64 encoded, decode it and store the binary result.
-
Catch error where more than one input document is passed to p:exec.
-
Throw err:XD0051 for content types other than 'text/html' and 'application/xml' on p:unescape-markup. This makes the test suite pass, but I'm not sure it's a good idea.
-
Added check for parameters in the “p:” namespace.
-
Allow both a document and parameter input port to be primary.
-
Catch non-whitespace text nodes in a step
-
Throw err:XD0027 for bad xpath-version.
-
Check for PSVI supported if PSVI support is requested.
-
Attempt to deal with empty parameter input bindings. This fix is incomplete and perhaps incorrect.
-
Make sure that the output settings are the same on both the p:group and p:catch on a p:try
-
If there's no binding for an input, and a default binding is available, use the default binding.
-
Make sure the encoding is specified for base64 encoded data on p:data.
-
Fixed issue #79: Don't fail if XProcRuntime has been extended.
-
Attempt to use Xerces in p:validate-with-xml-schema if SAXON-SA isn't available. Very crude and incomplete.
-
Use Common Logging not my custom nonsense.
-
Attempt to get the charset right in p:data.
-
Make bindings on options and parameters count as use for primary output ports.
Changes in XML Calabash 0.9.14
This release fixes a few bugs.
-
Fixed a bunch of bugs related to not detecting unbound primary output ports. This makes XML Calabash much fussier about such things, in accordance with the spec.
-
Fixed p:wrap so that it performs a “deep”, recursive wrap. Also fixed a number of bugs related to group-adjacent, especially with respect to comments, PIs and text nodes.
-
Fixed a bunch of bugs (but I fear not quite all of them) related to parameter handling.
-
Detect attempt to process an empty sequence with p:viewport.
-
Allow 0/1 as valid boolean values in serialization parameters.
-
The p:store step now creates the full path to the specified output file, if it can.
XML Calabash 0.9.13
Version 0.9.13 was never actually released.
Changes in XML Calabash 0.9.12
The only change in this release is the introduction of a feature that allows options, parameters, and variables to hold general XDM values.
Note that using this extension (-X general-values on the command line) makes XML Calabash a non-conforming implementation.
Changes in XML Calabash 0.9.11
This release is mostly bug fixes.
-
Fixed issue #59: make sure that the xml:base value on p:directory-list is encoded correctly on Windows.
-
Fixed or introduced bug: Never manufacture default outputs on p:declare-step.
-
Updated Schematron to the most recent ISO release.
-
Fixed bug: specifying a namespace on p:unescape-markup caused it to discard all attributes.
-
Fixed bug: make sure that p:variable declarations inside a p:for-each are evaluated correctly.
-
Fixed bug: in p:http-request, if detailed=true, always output a c:body.
-
Fixed bug: the output port of a p:viewport is always named "result"
-
Fixed bug: a mising content-type in p:http-request caused an NPE.
-
If the input to p:query is base64 encoded, decode it.
-
Make sure that variable references in select expressions are resolved.
-
Support cdata-section-elements in serialization.
-
Updated p:error to include output port.
-
Updated p:exec to support arg-separator
-
Added support for osutils extensions (experimental)
-
Extended support for fileutils extensions (experimental)
Changes in XML Calabash 0.9.10
This release is intended to implement the 28 May 2009 Candidate Recommendation draft.
-
Fixed issue #55: detect empty p:declare-step
-
Support arg-separator on p:exec.
-
Support p:value-available(). Attempt to deal correctly with unbound options; not sure I've got it exactly right.
-
Throw exception in “safe mode” if p:load attempts to load a file: URI.
-
Make sure filenames are properly percent-encoded in p:directory-list.
-
Improve error messages in p:http-request.
-
Fixed bug: reset error port when p:tryp:catch is nested in a loop.
-
Support making the output a sequence if any of the p:when/p:otherwise outputs is a sequence. Similarly for p:try/p:catch.
-
First (evolving, unstable) attempt at supporting the fileutils library.
Changes in XML Calabash 0.9.9
-
Use cache when resolving entities; so the output of a step can be used to satisfy an entity systemId.
-
Use Jing (instead of MSV) for p:validate-with-relaxng. You can now pass compact syntax schemas to the step.
-
Support dtd-id-idref-warnings on p:validate-with-relaxng.
-
Added cx:nvdl step.
-
Schemas passed to p:validate-with-xsd and cx:nvdl are cached so that they'll be used preferentially.
-
Fixed bug where p:rename couldn't reliably rename attributes if a different attribute with the target name already existed.
Changes in XML Calabash 0.9.8
-
Updated p:exec to support new signature from the latest editor's draft.
-
Added API entry point that allows caller to pass in their own Saxon Processor object.
-
Support dtd-validate on p:load.
-
Check for incompatible types in content-type and override-content-type in p:http-request.
-
Check that parameter names are NCNames and fixed bug in handling of %-encoded characters in p:www-form-urldecode.
-
Check that the root element of a pipeline is an allowed root element.
-
Fixed bugs in the handling of outputs in compound steps.
-
Pass p:xquery parameters to the query processor as external variables.
-
Handle multipart boundary correctly in p:http-request.
Changes in XML Calabash 0.9.7
-
Fixed bug that allowed ports explicitly marked primary="false" to sometimes become the default readable port.
-
Added new extension steps cx:uri-info and cx:eval.
-
Fixed bug that allowed err:XD001 to go undetected.
-
Fixed miscellaneous small bugs in p:http-request, p:exec, p:load, and p:xinclude.
-
Fixed bug that allowed err:XC0039 to go undetected on p:xslt.
-
Fixed bug where the content of parameter set inputs were not carefully checked.
-
Fixed bug where XML Calabash did not check carefully for the consistency of properties on inputs and outputs on the branches of a p:choose.
-
Fixed bug where options in no namespace were incorrectly assumed to be in the default namespace.
-
Fixed bug that allowed option types to go unchecked.
-
Fixed bug where text/* MIME types were interpreted as binary (base64) instead of text.
-
Made several improvements in error reporting (still a weakness in XML Calabash).
-
Support PUT and HEAD in p:http-request. Support GET on file: URIs.
-
Fixed bug where the auth-method option on p:http-request was not checked.
-
Fixed bug where the RunTestReport class did not detect cases where a test passed when it should have failed.
-
Fixed bug where an error in a pipeline library sometimes did not cause XML Calabash to abort execution.
-
Fixed bug in the processing of the "-b" command line option. It was just totally wrong.
-
Support p:import in p:library.
-
Remove reference to internal Sun class for Base64 encoding.
Changes in XML Calabash 0.9.6
In version 0.9.6, I've fixed a few bugs and added one new feature.
-
Improve how p:add-xml-base generates URIs when relative is true. I believe this resolves issue #31.
-
Support text/xml as an XML content type in p:http-request. I believe this resolves issue #33.
-
Support cx:timeout extension attribute on p:http-request. This specifies the number of miliseconds to use as the timeout value. I believe this resolves issue #34.
-
Recognize application/xml and text/xml content types in p:http-request even when they're followed by parameters. I believe this partially resolves issue #35.
-
Don't process the body of subpipelines declared with p:pipeline twice. I believe this resolves issue #39.
-
Implemented an extension: if the href option of p:document points to a directory, load all the XML files in that directory as a sequence. By default, it attempts to load all the files that match “^.*\.xml$”. You can use the cx:filemask extension attribute to change that regular expression.
-
Fixed bug where the output of the last step in a subpipeline was not considered read if it was read by one of its siblings (rather than its parent).
Changes in XML Calabash 0.9.5
In version 0.9.5, I've fixed a few bugs and added one new feature.
-
Support proxies through Java 1.5 ProxySelector. I believe this fixes issue #42.
-
Ignore select attributes when an explicit binding is given for a top-level pipeline input. (This flip-flops a previous fix based on Working Group decisions.) I believe this resolves issue #29.
-
Output c:header elements again. I believe this fixes issue #38.
-
Add support for different log styles for p:log output. The default is WRAPPED, what XML Calabash has always done. New possibilities are PLAIN (no wrappers, so the result of logging a sequence won't be a well-formed XML document), DIRECTORY (which writes each result to a separate document in the specified directory), and OFF (which suppresses all p:log output). I believe this fixes issue #12.
-
Don't re-read documents if we're in a loop; just reset so that we reuse the one we've loaded already. I believe this fixes issue #37.
Changes in XML Calabash 0.9.4
In version 0.9.4, I've totally rewritten the p:http-request step so that it uses the Apache HttpClient. This change allows the step to support cookies (e.g., for authentication) and other HTTP methods. As this is the first release after a major refactoring, things are likely to be a little rough around the edges.
-
Completely reworked p:http-request to use Apache HttpClient. As a result, the prerequisites have changed. I believe this fixes issue #7.
-
Fix bugs where p:unescape-markup didn't handle escaped, top-level sibling elements or leading comments and PIs.
-
Throw err:XS0032 if no p:xpath-context is specified and there's no default readable port (instead of throwing ArrayIndexOutOfBounds).
-
Fix bug where step options were treated as a set instead of a list (this sometimes caused dependencies to be missed).
-
Fixed issue #29; was ignoring select attribute on top level pipeline inputs.
-
Fixed issue #30; counting matches didn't do namespaces right.
Changes in XML Calabash 0.9.3
In version 0.9.3, I fixed a number of bugs and improved several aspects of error reporting.
-
Fixed bug: preserve parameter order in p:www-form-url-encode.
-
Fixed bug: handle comments and PIs correctly in p:string-replace.
-
Fixed bug: handle #all and #default in exclude-inline-prefixes.
-
Fixed bug: catch XPath syntax errors and report the correct error code.
-
Fixed bug: detect sequences sent to input ports on atomic steps where sequences are not allowed.
-
Fixed bug: return empty string when an unknown system property is requested.
-
Enhancement: added support for user-specified default serialization options in the configuration file.
-
Enhancement: improved several error messages.
-
Enhancement: made an unbound output port on a top level pipeline a warning instead of an error; defaults to /dev/null.
-
Fixed bug: catch XIncludes that include themselves; made sure that the underlying causes is correctly reported when xi:fallback fails.
-
Enhancement: improved error messages when processing throws an exception; suppress the stack trace unless debugging is enabled.
-
Enhancement: improved the quality of data sent when “phoning home”.
-
Fixed bug: pipe bindings in compound steps were sometimes incorrectly handled.
-
Fixed bug: make sure a QName without a prefix is always in no namespace.
-
Fixed bug: p:uuid was throwing err:XD0060 instead of err:XC0060 when an unsupported type was requested.
Changes in XML Calabash 0.9.2
In version 0.9.2, I fixed significant bugs in p:exec and cx:unzip in addition to a number of smaller fixes.
-
In cx:unzip, read the ZIP file as a stream so that ZIP files located on HTTP servers work.
-
Vastly improved p:exec. You know, so it works.
Changes in XML Calabash 0.9.1
In version 0.9.1, I fixed a bug and cleaned up a bit of debugging code.
-
Fixed bug where c:http-request content was incorrectly serialized as XML. Now it's only serialized as XML if the content type is “application/xml” or ends with “+xml”.
Changes in XML Calabash 0.9.0
In version 0.9.0, a few bugs have been fixed and the pxf:cwd extension function has been introduced.
-
Fixed several bugs related to base URIs. Attempt to assure that documents created by pipeline steps have appropriate base URIs. Attempt to make sure that the base URIs of nodes are preserved in processed documents.
-
Allow extension functions in p:input select expressions; throw the correct error for invalid selections.
-
Handle parameters passed to p:validate-with-schematron.
-
Require extension steps to be explicitly declared. You must now explicitly import http://xmlcalabash.com/extension/steps/library-1.0.xpl if you want to use XML Calabash extension steps.
-
Added pxf:cwd() extension function, see EXProc Description.
-
Added support for exclude-inline-prefixes to configuration files.
-
Fixed p:wrap so that match="/" is supported.
Changes in XML Calabash 0.8.8
In version 0.8.8, a bunch of bugs have been fixed and there's now support for p:step-available(). Other notable changes include:
-
Fixed base URI bug in p:viewport.
-
Support p:step-available().
-
Updated error list (mapping from error codes to messages).
-
Support apply-to on p:namespace-rename
-
Completely reworked extension functions.
-
Fixed bug with select on p:for-each.
-
Fixed several bugs related to error codes.
-
Rewrote the code that supports configuration files.
-
Reworked how XProcRuntime and XProcConfiguration are initialized.
-
Try harder to make sure that we get ahold of the entityResolver hook when parsing documents.
[1]In a p:when test, when the expression boolean(string-length(/element/@uri) > 1) is evaluated by Saxon 9.3, it returns the string value of the uri attribute! That would, on the surface, seem to be impossible.
