Name
p:xslt — The standard p:xslt step.
Synopsis
The p:xslt step invokes an XSLT stylesheet.
| Input port | Primary | Sequence | Content types |
|---|---|---|---|
| source | ✔ | ✔ | any |
| stylesheet | xml |
| Output port | Primary | Sequence | Content types |
|---|---|---|---|
| result | ✔ | ✔ | any |
| secondary | ✔ | any |
| Option name | Type | Default value |
|---|---|---|
| global-context-item | item()? | () |
| initial-mode | xs:QName? | () |
| output-base-uri | xs:anyURI? | () |
| parameters | map(xs:QName,item()*)? | () |
| populate-default-collection | xs:boolean? | true() |
| static-parameters | map(xs:QName,item()*)? | () |
| template-name | xs:QName? | () |
| version | xs:string? | () |
Declaration
1 |<p:declare-step xmlns:p="http://www.w3.org/ns/xproc" type="p:xslt">
| <p:input port="source"
| content-types="any"
| sequence="true"
5 | primary="true"/>
| <p:input port="stylesheet" content-types="xml"/>
| <p:output port="result"
| primary="true"
| sequence="true"
10 | content-types="any"/>
| <p:output port="secondary" sequence="true" content-types="any"/>
| <p:option name="parameters" as="map(xs:QName,item()*)?"/>
| <p:option name="static-parameters" as="map(xs:QName,item()*)?"/>
| <p:option name="global-context-item" as="item()?"/>
15 | <p:option name="populate-default-collection" as="xs:boolean?" select="true()"/>
| <p:option name="initial-mode" as="xs:QName?"/>
| <p:option name="template-name" as="xs:QName?"/>
| <p:option name="output-base-uri" as="xs:anyURI?"/>
| <p:option name="version" as="xs:string?"/>
20 |</p:declare-step>Errors
| Code | Description |
|---|---|
err:XC0007 | It is a dynamic error (err:XC0007) if any key in
parameters is associated to a value which is not an instance of the XQuery
1.0 and XPath 2.0 Data Model, e.g. with a map, an array, or a function. |
err:XC0008 | It is a
dynamic error (err:XC0008) if the stylesheet does not support a given mode. |
err:XC0038 | It is a
dynamic error (err:XC0038) if the specified xslt version is not available. |
err:XC0039 | It is a dynamic error (err:XC0039) if the source port does not
contain exactly one XML document or one HTML document if XSLT 1.0 is used. |
err:XC0056 | It is a dynamic error (err:XC0056) if the stylesheet does not provide a given
template. |
err:XC0093 | It is a dynamic error (err:XC0093) if a static error occurs during the
static analysis of the XSLT stylesheet. |
err:XC0094 | It is a dynamic
error (err:XC0094) if any document supplied on the source port is not an XML document, an
HTML documents, or a Text document if XSLT 2.0 is used. |
err:XC0095 | It is a dynamic error (err:XC0095) if an error occurred during
the transformation. |
err:XC0096 | It is a dynamic error (err:XC0096) if the transformation is
terminated by XSLT message termination. |
err:XC0105 | It is a dynamic error (err:XC0105) if an XSLT 1.0
stylesheet is invoked and option parameters contains a value that is not an atomic value
or a node. |
err:XC0121 | It is a dynamic error (err:XC0121) if a document appearing
on the secondary port has a base URI that is not both absolute and
valid according to RFC 3986. |
Implementation defined features
- It is implementation-defined which XSLT version(s) is/are supported.
- Whether static parameters are supported is implementation-defined and depends on the XSLT version (which must be 3.0 or higher).
Implementation dependent features
- How XSLT message termination errors are reported to the XProc processor is implementation-dependent.
- The order in which result documents appear on the secondary port is implementation-dependent.
- The order in which result documents appear on the secondary port is implementation-dependent.
Description
The p:xslt step is a
standard XProc 3.0 step.
It is also described on XProcRef.org.
If dynamic errors occur during processing and there are no line numbers in the reported errors, make sure that the line numbering feature is enabled globally in the configuration or when the validated document is loaded. (Line numbers will be reported for static errors regardless of the line numbering setting.)
Extension attributes
cx:cache-stylesheetIf the
cx:cache-stylesheetattribute istrue, and the stylesheet has a base URI, then that stylesheet will be cached. The first time a cached stylesheet is encountered, it is compiled and saved. Subsequent uses of that cached stylesheet will reuse the previously compiled version.See Caching compiled resources for more details.
cx:empty-global-contextIf
cx:empty-global-contextistrue, the global context item will be empty, even if there is only one source document.