Key Concepts of XProc
XProc is organized in pipelines. Pipelines take data as input and produce data as outputs.
Data flows over ports into and out of the pipeline. These ports are called input and output ports.
The data is manipulated by steps. A pipeline can contain multiple steps.
Pipelines can be imported by other pipelines. These are called subpipelines but from the perspective of the importing pipeline, the subpipeline acts as a step.
Certain steps can include one or more subpipelines. These steps are called compound steps. Compound steps can be used to manage the data flow through the pipeline and may offer conditionals, iterators and exception handling. XProc steps that do not contain a subpipeline are called atomic steps.
Like pipelines, steps may have one or more input and output ports.
Ports can be designated as primary or secondary. In two consecutive steps, the primary output and primary input ports connect automatically. Important: The primary output of a step must always be connected either to the primary input port of the next step or the pipeline output port. This concept is called implicit binding.
Ports have fixed or user-defined names. Ports can be explicitly connected via their names. This concept is called explicit binding and overwrites implicit port bindings.