The W3C XML Processing Model Working Group has posted a new working draft of XProc: An XML Pipeline Language. According to the introduction,
An XML Pipeline specifies a sequence of operations to be performed on a collection of XML input documents. Pipelines take zero or more XML documents as their input and produce zero or more XML documents as their output.
A pipeline consists of steps. Like pipelines, steps take zero or more XML documents as their inputs and produce zero or more XML documents as their outputs. The inputs to a step come from the web, from the pipeline document, from the inputs to the pipeline itself, or from the outputs of other steps in the pipeline. The outputs from a step are consumed by other steps, are outputs of the pipeline as a whole, or are discarded.
There are two kinds of steps: atomic steps and compound steps. Atomic steps carry out single operations and have no substructure as far as the pipeline is concerned, whereas compound steps control the execution of other steps, which they include in the form of one or more subpipelines.
Standard steps include count, delete, equal, error, load, parse, serialize, insert, escape markup, unescape markup, identity, label elements, XSLT, XQuery, rename, namespace rename, replace, wrap, unwrap, wrap sequence, sink, set attributes, split sequence, string replace, XInclude, HTTP request, RELAX NG validate, and W3C Schema validate. This draft removes implicit input and output pipes, supports XPath 2, and adds a number of attributes to various steps. Others may be defined.