The W3C XML Processing Model Working Group has posted the fourth public 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 input and produce zero or more XML documents as their output. 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 include a subpipeline of steps within themselves.
Standard steps include count, delete, equal, error, load, parse, serialize, insert, escape markup, unescape markup, identity, label elements, XSLT, XSLT 2, XQuery, rename, namespace rename, replace, wrap, unwrap, wrap sequence, sink, set attributes, split sequence, string replace, XInclude, HTTP request, RELAX NG validate, XSLT 2.0, XQuery 1.0, and W3C Schema validate, Others may be defined.