XML Processing

Welcome to XProc.org

XProc.org is a website about XProc: An XML Pipeline Language, a specification under development 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.

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.