Supersedes The XML Pipeline Processor, 10 Jul 2007.

XML Calabash: an XProc implementation

24 Aug 2008; last modified 28 Oct 2013

This is the permanent status page for Calabash. Calabash is an implementation of XProc: An XML Pipeline Processor, a specification being developed by the W3C to address questions about the XML processing model. Version 1.0.15 is now available.

XML Calabash LogoCalabash runs XProc pipelines. It is a command-line application. This version of Calabash is supposed to implement the 11 May 2010 Recommendation of the XProc specification.

The current release is 1.0.15 from 28 Oct 2013. This is a stable release.

Recent changes are now recorded on the download page.

Calabash's performance against the test suite is reported. (Most releases so far have passed most, if not quite all, of the tests.)

Calabash is implemented in Java and should run on any platform that supports Java 1.5 or later and has a command-line. You can get “calabash” from the download page on xmlcalabash.com. It is available under the terms of the GNU General Public License, Version 2.0.

Previous releases:

  • 1.0.14 was never released.

  • 1.0.13 from 20 Aug 2013. This was a stable release.

  • 1.0.12 was never really released.

  • 1.0.11 from 31 Jul 2013. This was a stable release.

  • 1.0.10 from 22 Jul 2013. This was a stable release.

  • 1.0.9 from 19 Mar 2013. This was a stable release.

  • 1.0.8 from 04 Feb 2013. This was a stable release.

  • Versions 1.0.6 and 1.0.7 were never officially released.

  • 1.0.5 from 27 Jan 2013. This was a stable release.

  • 1.0.4 from 25 Jan 2013. This was a stable release.

  • 1.0.3 from 27 May 2012. This was a beta release.

  • 1.0.2 from 29 Jan 2012 was a stable release.

  • 1.0.1 from 28 Jan 2012 was a stable release.

  • 1.0.0 from 20 Jan 2012 was a stable release.

  • 0.9.44 from 10 Jan 2011 was a beta release.

  • 0.9.42 from 02 Jan 2011 was a beta release.

  • 0.9.41 from 03 Dec 2011 was a beta release.

  • 0.9.40 from 11 Nov 2011 was a beta release.

  • 0.9.39 from 31 Oct 2011 was a beta release.

  • 0.9.38 from 26 Oct 2011 was a beta release.

  • 0.9.37 from 07 Oct 2011 was a beta release.

  • 0.9.36 from 05 Oct 2011 was a beta release.

  • 0.9.35 from 03 Oct 2011 was a beta release.

  • 0.9.24 from 07 Nov 2010 was a beta release.

  • 0.9.23 from 27 Jul 2010 was a beta release.

  • 0.9.22 from 20 Jul 2010 was a beta release.

  • 0.9.21 from 19 Apr 2010 was a beta release.

  • 0.9.20 from 05 Apr 2010 was a beta release.

  • Apparently I failed to publicize 0.9.18 and 0.9.19. Mea culpa.

  • 0.9.17 from 27 Feb 2010 was a beta release.

  • There was no official 0.9.16 release.

  • 0.9.15 from 04 Oct 2009 was a beta release.

  • 0.9.14 from 23 Jul 2009 was a beta release.

  • Version 0.9.13 was never actually released.

  • 0.9.12 from 23 Jun 2009 was a beta release.

  • 0.9.11 from 22 Jun 2009 was a beta release.

  • 0.9.10 from 01 Jun 2009 was a beta release.

  • 0.9.9 from 30 Apr 2009 was a beta release.

  • 0.9.8 from 21 Apr 2009 was a beta release.

  • 0.9.7 from 31 Mar 2009 was a beta release.

  • 0.9.6 from 11 Mar 2009 was a beta release.

  • 0.9.5 from 05 Mar 2009 was a beta release.

  • 0.9.4 from 04 Feb 2009 was a beta release.

  • 0.9.3 from 19 Dec 2008 was a beta release.

  • 0.9.2 from 04 Dec 2008 was a beta release.

  • 0.9.1 from 30 Nov 2008 was a beta release.

  • 0.9.0 from 28 Nov 2008 was a beta release.

  • 0.8.8 from 20 Nov 2008 was an alpha release.

  • 0.8.6 from 09 Nov 2008 was an alpha release.

  • 0.8.5 from 04 Nov 2008 was an alpha release.

  • 0.8.4 from 31 Oct 2008 was an alpha release.

  • 0.8.3 from 26 Oct 2008 was an alpha release.

  • 0.8.2 from 20 Oct 2008 was an alpha release.

  • 0.6.3 from 28 Sep 2008 was an alpha release.

  • 0.6.2 from 26 Sep 2008 was an alpha release.

  • 0.6.1 from 22 Sep 2008 was an alpha release.

  • 0.6.0, from 27 Aug 2008 was an alpha release.

  • 0.5.1, from 24 Aug 2008 was the initial alpha release.

Calabash is maintained by Norman Walsh. Please report any bugs that you encounter.

If you'd like to build the project yourself, you can browse the Git repository or access it directly from git@github.com:ndw/xmlcalabash1.git.

Calabash was first announced on 24 Aug 2008. It is a complete rewrite of an earlier project named simply The XML Pipeline Processor.

Comments

There doesn't seem to be any source code at http://svn.xmlcalabash.com/

—Posted by Gavin Carothers on 03 Sep 2008 @ 05:17 UTC #

It was there, you just couldn't see it :-) I've fixed that now.

—Posted by Norman Walsh on 05 Sep 2008 @ 11:43 UTC #

Thanks for your work on this.

I'm going to play with it a bit this week.

—Posted by Chris on 30 Sep 2008 @ 04:54 UTC #

The fact that you keep on adding dependancies on foreign proprietary software shows how XML has failed. Obviously step #1 of xproc support work should be to have open-source implementations of all the XML Standards needed for xproc itself available. I like the idea of xproc; I hate the idea of having to throw out hundreds, if not in sum thousands of dollars for licenses just to run the full xproc vocabulary. E.g. I have the perfect usage scenario for xproc. validate query validate transform split upload etc. Seems to start off with xproc seriously, I first gotta implement the pack of xml standards. Wake up W3C! Where are YOUR prototypes?!

—Posted by Martin Weber on 27 Oct 2008 @ 05:05 UTC #

Martin,

The only standard steps in Calabash that require any proprietary software are p:validate-with-xml-schema and p:xsl-formatter.

In each case, it's simply a matter of expediency on my part. I will certainly support Xerces for schema validation eventually, and probably FOP for XSL formatting.

All of the other dependencies are on open source packages of one flavor or another.

—Posted by Norman Walsh on 30 Oct 2008 @ 01:38 UTC #

Norman,

...you mean "so long as you don't try to use the two year old XPath2 / XSLT2 standards" which again forces you to have DTDs available which again .. or you go down the money route. That's what I'm talking about. Anyways, I'd like to seriously test this but with saxon as a requirement I'll probably have to hack some first. Let's see what my employer says..

—Posted by Martin Weber on 04 Nov 2008 @ 06:50 UTC #

Martin,

There's nothing commercial about the Saxon support except for the p:validate-with-xml-schema step, which I've already explained is a question of implementation convenience, not any sort of refusal to implement an entirely free suite of steps.

—Posted by Norman Walsh on 07 Nov 2008 @ 02:07 UTC #

Regarding XPath2 / XSLT2: do either of these requires DTDs or any other form of validation? I thought you just don't get a lot of the schema-aware goodness if you don't have validation. There are, however, lots of other reasons why these versions are a big step forward from the old ones.

By the way, is there an open-source schema-aware XSLT2 processor available? I'm fully aware of the Saxon-B/SA split.

—Posted by Ed Davies on 16 Nov 2008 @ 11:52 UTC #

Ed,

You don't need DTDs or XML Schemas to use XPath 2.0 or XSLT 2.0. You can use DTDs, of course, and you can use XML Schema if you have a schema-aware processor. I'm not aware of any open-source, schema-aware XSLT 2.0 processors.

Personally, I stick with RELAX NG validation and don't care about schema-awareness at the XSLT level (beyond simple types that are available in a basic processor).

—Posted by Norman Walsh on 17 Nov 2008 @ 02:42 UTC #

I appreciate the nature of this Calabash project and the W3C work. It is on a valuable track.

We've been working on a much narrower development project on a homebrew basis, but it does reflect the qualities of creating a modularized pipeline of XSLT transforms. It uses an ASP script controlling things together with MSXML objects and methods (on a Windows server obviously). It's oriented to simply grabbing static XML/HTML inputs, running a specified series of transforms, then displaying the result in a browser as XHTML, forms, slightly animated at that point by embedded Javascript (nothing fancy at all, no frills).

Our framework simply leverages naming the inputs and XSLTs on the URL http call, e.g. http://xtp.boeing.com/xtp.asp?xml=http://server/folder/foo.xml&xsl=GetHTML,Transform1,Transform2,ShowTable

Thank you Norman!

—Posted by Dave Porter on 02 Dec 2008 @ 06:44 UTC #

What about auto-discovery of configuration.xml-like files on the classpath, akin to JAR service lookup?

This would mean that extension steps can be supported by Calabash just by dropping a JAR with the implementation and extra configuration file onto Calabash's classpath.

Such extra configuration files should probably be able to override the built-in <implementation> declarations, in order to, for instance, implement <p:xsl-formatter> with FOP.

—Posted by Alex Hvostov on 17 Jan 2009 @ 12:12 UTC #

Can you tell me how to use p:xsl-formatter step. I am getting some errors when I use this step.

I am running calabash with the following options. -isource=out1.fo xpl\test-pdf.xpl

xep is added in the classpath.

Below is the error message:

Error : file:/C:/Sesi/personal/xml/xproc/calabash-0.9.14/calabash-0.9.14/xpl/test-pdf.xpl:2: Output port 'result' on anonymous step declare-step at file:/C:/Sesi/personal/xml/xproc/calabash-0.9.14/ca labash-0.9.14/xpl/test-pdf.xpl:2 unbound Error : Pipeline failed: err:XE0001: Output port 'result' on anonymous step declare-step at file:/C :/Sesi/personal/xml/xproc/calabash-0.9.14/calabash-0.9.14/xpl/test-pdf.xpl:2 unbound Unknown error

—Posted by Sesi Bhushan on 31 Jul 2009 @ 12:22 UTC #

Hi!

I am not amused.

Why not clearly state everywhere that calabash is PHONING HOME messages to you everytime I use calabash?

Why not state everywhere that you log my IP at each use of calabash?

Why not clearly state how to turn this off?

—Posted by nothere on 03 May 2010 @ 08:52 UTC #

I'm sorry you didn't find the documentation page where this is clearly explained:

http://xmlcalabash.com/docs/phonehome.html

It's a link straight off the documentation page and includes instructions for how to opt out.

In retrospect, it could be made more clear and I will attempt to do so. (You didn't leave any sort of contact information with your comment or I would have apologized more personally for any inconvenience.)

—Posted by Norman Walsh on 04 May 2010 @ 10:43 UTC #