Table of Contents
This chapter extracts all the definitions from the CR
Unless otherwise noted, the term Namespaces in XML refers equally to and .
XProc is intended to work equally well with and . Unless otherwise noted, the term “XML” refers equally to both versions.
The ancestors of a step, if it has any, are its container and the ancestors of its container.
An atomic step is a step that performs a unit of XML processing, such as XInclude or transformation, and has no internal subpipeline.
A binding associates an input or output port with some data source.
A document is specified by URI if it is referenced with a URI.
A document is specified by source if it references a specific port on another step.
A compound step is a step that contains a subpipeline.
The steps that occur directly within, or within non-step wrappers directly within, a step are called that step's contained steps. In other words, “container” and “contained steps” are inverse relationships.
A compound step or multi-container step is a container for the steps directly within it or within non-step wrappers directly within it.
The input ports declared on a step are its declared inputs.
The options declared on a step are its declared options.
The output ports declared on a step are its declared outputs.
The default readable port, which may be undefined, is a specific step name/port name pair from the set of readable ports.
A dynamic error is one which occurs while a pipeline is being evaluated.
The empty environment contains no readable ports, an undefined default readable port and no in-scope bindings.
An empty sequence of documents is specified with the p:empty element.
The environment is a context-dependent collection of information available within sub-pipelines.
An element from the XProc namespace may have any attribute not from the XProc namespace, provided that the expanded-QName of the attribute has a non-null namespace URI. Such an attribute is called an extension attribute.
An implementation-defined feature is one where the implementation has discretion in how it is performed. Conformant implementations must document how implementation-defined features are performed.
An implementation-dependent feature is one where the implementation has discretion in how it is performed. Implementations are not required to document or explain how implementation-dependent features are performed.
The in-scope bindings are a set of name-value pairs, based on option and variable bindings.
The inherited environment of a contained step is an environment that is the same as the environment of its container with the standard modifications.
An inline document is specified directly in the body of the element that binds it.
The last step in a subpipeline is its last step in document order.
A step matches its signature if and only if it specifies an input for each declared input, it specifies no inputs that are not declared, it specifies an option for each option that is declared to be required, and it specifies no options that are not declared.
A multi-container step is a step that contains several alternate subpipelines.
To produce a serializable XML document, the XProc processor must sometimes add additional namespace nodes, perhaps even renaming prefixes, to satisfy the constraints of Namespaces in XML. This process is referred to as namespace fixup.
An option is a name/value pair where the name is an expanded name and the value must be a string or xs:untypedAtomic.
A parameter is a name/value pair where the name is an expanded name and the value must be a string or xs:untypedAtomic.
A parameter input port is a distinguished kind of input port which accepts (only) dynamically constructed parameter name/value pairs.
A pipeline is a set of connected steps, with outputs of one step flowing into inputs of another.
If a step has a document input port which is explicitly marked “primary='true'”, or if it has exactly one document input port and that port is not explicitly marked “primary='false'”, then that input port is the primary input port of the step.
If a step has a document output port which is explicitly marked “primary='true'”, or if it has exactly one document output port and that port is not explicitly marked “primary='false'”, then that output port is the primary output port of the step.
If a step has a parameter input port which is explicitly marked “primary='true'”, or if it has exactly one parameter input port and that port is not explicitly marked “primary='false'”, then that parameter input port is the primary parameter input port of the step.
The readable ports are a set of step name/port name pairs.
The signature of a step is the set of inputs, outputs, and options that it is declared to accept.
The options on a step which have specified values, either because a p:with-option element specifies a value or because the declaration included a default value, are its specified options.
A static error is one which can be detected before pipeline evaluation is even attempted.
A step is the basic computational unit of a pipeline.
Sibling steps (and the connections between them) form a subpipeline.
A variable is a name/value pair where the name is an expanded name and the value must be a string or xs:untypedAtomic.
If two names are in the same scope, we say that they are visible to each other.