New XProc Working Draft

Volume 10, Issue 28; 05 Apr 2007; last modified 08 Oct 2010

The XML Processing Model Working Group has published a new Working Draft of XProc: An XML Pipeline Language.

The Processing Model Working Group has been busy hashing out the details of XProc. I think our latest draft, published today, represents significant progress.

There's been significant editorial work since our previous draft, but that made it impractical to produce a “diff” version. Here's a quick summary of the highlights.

  • The language is conceptually simpler: we've removed the notion of an abstract component model independent of the XML syntax. A pipeline is now a collection of steps, in roughly the same way that an XSLT stylesheet is a collection of templates.

  • The language is syntactically simpler: we've moved from “<p:step type="p:xslt">” to simply “<p:xslt>”.

  • The language is less verbose: we now have a defaulting story so that the outputs of one step can flow into the following step without an explicit binding.

  • The bindings are simpler: instead of a complex arrangement of co-constrained attributes, we have nested elements with consistent semantics. This is slightly more verbose, but now less often necessary because of our defaulting story.

  • There's now an explicit documentation element so that pipelines can be documented in a straightfoward and consistent manner.

  • The specification is now includes appendixes that summarize the syntax and the static and dynamic errors.

  • The language grammar is now available in RELAX NG, W3C XML Schema, and DTD formats.

  • The set of standard steps, both required and optional, is now more complete. This is an area of the specification that is still under active discussion, so the presence or absence of a step in this draft is probably not very significant. But if your favorite step is missing, now would be a good time to tell us and provide a use case.

There are other changes too, but I think those are the highlights.

My own implementation, which ran a few simple piplines once before being shredded in a refactoring exercise, very nearly runs pipelines again. Here's hoping for a public release in the short term.

As I'm fond of reminding the WG, as of today there are a mere 30 weeks left in our charter. We need to get to last call soon. If you've got comments, now would be the time. If you've made comments that haven't been answered, please accept my apologies. I've been driving the WG to get this draft finished. We'll get to the comments in short order.