XML Processing Fish logo

Welcome to archive.xproc.org

Archive.xproc.org is a website about the 1.0 version of XProc: An XML Pipeline Language, a specification developed at the W3C, and its use, implementation, and extensions.

What is it?

XProc is a language designed for describing operations to be performed on XML documents. The official specification for XProc is XProc: An XML Pipeline Language. It is a Recommendation.

The XProc specification was produced by the XML Processing Model Working Group. The XProc WG operated in the public, anyone is free to read the archives of its mailing list.

While the WG was in operation, public comments on the specification could be sent to the processing model comments mailing list. The archives of the comments list are also open to the public. Now that the WG has been disbanded, readers are encouraged to submit comments to the community through the GitHub issue tracker.

Interested in the latest development?

The next version of XProc, called XProc 3.0 is currently under development. The editorial team believes that the core language specification is in “last call”. Please help us by reading and commenting it. It is on spec.xproc.org, which is build from the XProc 3.0 github repo. This is also the place of our issue tracker if you want to leave any comments or make suggestions on XProc 3.0.

Erik Siegel gave a talk “Excellent XProc 3.0” at XML Prague 2019. The video is available here.

The next XProc 3.0 workshop will take place 10th and 11th June 2019 in London (UK), immediately after Markup UK.

We also invite everyone to participate in theXProc Next community group at W3C. You do not have to be a W3C member to join the community group.

Why did you do it?

XProc is designed to address the common problem of how to compose XML processes. Many document processing scenarios involve some combination of XML technologies; canonical examples include XInclude, schema validation, and transformation.

Although it is possible to combine these technologies using general purpose tools such as make and ant (to name only two), these tools are not designed to deal specifically with the semantics of XML processing. As such they are often both more complicated and less useful than would be ideal

XProc has been designed specifically to allow authors to compose XML processes and share these compositions in a standard way.

For more details about the requirements of XProc and the use cases that it was designed to solve, see XML Processing Model Requirements and Use Cases.

How do I participate?

All users, implementors, and other developers with an interest in XProc are encouraged to join the “xproc-dev” mailing list. Send a “subscribe” request to to join.

It too is archived for your pleasure. It is even more usefully archived on MarkMail.

What about examples?

An official test suite for XProc is under development. See http://tests.xproc.org/ for more information.

There is also a very nice tutorial by Roger Costello and James Garriss.

Achim Berndzen and Gerrit Imsieke organized an “XProc showroom” at XML Prague 2017. The showroom wiki contains links to some open-source projects.

Recent events