XProc 3.1 — “Last Call” Specifications

The current, official specifications are XProc 3.0 and XProc 3.0: Standard Step Library.

XProc 3.1 is in “last call”. Version 3.1 fixes a few errata in the language specification and the standard step library. It also publishes a number of additional step libraries as finished specifications.

Last call will last for at least a month (until 20 September 2024), after which time the final specifications will be published (unless additional last call periods are required).

If you have questions or comments about the last call drafts, please let us know.

Core specification

The core specification describes the syntax and semantics of the XProc 3.1 language. The last call draft is available:

Standard step libraries

The XProc 3.1 step libraries are available in several different specifications. The last call drafts are stable and will not be updated.

All implementations must implement the standard step libarary:

Support for these additional libraries is optional. Implementations are free to pick and choose which libraries they implement.


XProc 3.0 — Specifications

The following drafts are the most currently published specifications.

Core Specification

The core specification describes the syntax and semantics of the XProc 3.0 language. Two versions are available:

If you find (either version of) the language specification unclear or believe that you've found an error or omission, please let us know.

Standard Step Library

The standard step library specification describes the standard step vocabulary of the XProc 3.0 language. Two versions are available:

If you find (either version of) the standard step library specification unclear or believe that you've found an error or omission, please let us know.

Additional specifications

Not all steps make sense in every environment where an XProc processor might run. For example, paged media steps are unlikely to be supported on a mobile device, and steps that operate on files might not make sense in an embedded environment.

To simplify the task of identifying which steps an implementation supports, suites of steps considered "optional" are organized into separate specifications:

It's likely that additional, optional libraries will be created. (Steps for linked data, for sending mail, for accessing ODBC services have all been suggested).

If you find any of the step specifications unclear or believe that you've found an error or omission, please let us know. Please also tell us if you have suggestions for new step libraries or if you think that an optional step should be required or vice versa.