The p:css-formatter
step applies [CSS] formatting to an XML or HTML document. The output of this step is often, but not necessarily, a PDF document.
Summary
Input port | Primary | Sequence | Content types | Default binding |
---|---|---|---|---|
source | xml html | |||
stylesheet | ✔ | text | p:empty |
Output port | Primary | Sequence | Content types | Default binding |
---|---|---|---|---|
result | ✔ | any |
Option name | Type | Default value |
---|---|---|
content-type | xs:string? | () |
parameters | map(xs:QName,item()*)? | () |
Errors
Error code | Description |
---|---|
err:XC0166 | It is a dynamic error if the requested document cannot be produced. |
err:XC0204 | It is a dynamic error if the requested content-type is not supported. |
err:XD0079 | It is a dynamic error if a supplied content-type is not a valid media type of the form “type/subtype+ext” or “type/subtype”. |
Implementation details
Implementation | Description |
---|---|
Defined | The use of media type parameters on the content-type option is implementation-defined. |
Defined | If the content-type option is not specified, the output type is implementation-defined. |
Defined | The precise way that the p:css-formatter step selects stylesheets is implementation-defined. |
Defined | A formatter may take any number of optional rendering parameters via the step's parameters; such parameters are defined by the CSS implementation used and are implementation-defined. |
Defined | The CSS level and the particular CSS features supported by p:css-formatter are implementation-defined. |
Declaration
<p:declare-step
type
="
p:css-formatter
"
>
<p:input
port
="
source
"
content-types
="
xml html
"
/>
<p:input
port
="
stylesheet
"
content-types
="
text
"
sequence
="
true
"
>
<p:empty/>
</p:input>
<p:output
port
="
result
"
content-types
="
any
"
/>
<p:option
name
="
parameters
"
as
="
map(xs:QName,item()*)?
"
/>
<p:option
name
="
content-type
"
as
="
xs:string?
"
/>
</p:declare-step>
The document on the source
port is formatted using one or more CSS stylesheets. The content-type of the output is controlled by the content-type
option. This option specifies a media type as defined by [IANA Media Types]. It is a dynamic error (err:XD0079
) if a supplied content-type is not a valid media type of the form “
” or “type
/subtype
+ext
”. The option may include media type parameters as well (e.g. "application/someformat; charset=UTF-8"). The use of media type parameters on the type
/subtype
content-type
option is implementation-defined.If the content-type
option is not specified, the output type is implementation-defined. The default should be PDF. It is a dynamic error (err:XC0204
) if the requested content-type is not supported.
If one or more stylesheets are provided on the stylesheet
port, they should be used. The precise way that the p:css-formatter
step selects stylesheets is implementation-defined. Because CSS stylesheets may have import statements that rely on relative URI references, it may be more convenient for authors and implementors to allow stylesheets to be specified as a list of URIs (in, for example, one of the parameters
).
A formatter may take any number of optional rendering parameters via the step's parameters
; such parameters are defined by the CSS implementation used and are implementation-defined.
The CSS level and the particular CSS features supported by p:css-formatter
are implementation-defined.
It is a dynamic error (err:XC0166
) if the requested document cannot be produced.
Document properties
No document properties are preserved.
The p:xsl-formatter
step receives an [XSL 1.1] document and renders the content.
Summary
Input port | Primary | Sequence | Content types |
---|---|---|---|
source | ✔ | xml |
Output port | Primary | Sequence | Content types |
---|---|---|---|
result | ✔ | any |
Option name | Type | Default value |
---|---|---|
content-type | xs:string? | () |
parameters | map(xs:QName,item()*)? | () |
Errors
Error code | Description |
---|---|
err:XC0167 | It is a dynamic error if the requested document cannot be produced. |
err:XC0204 | It is a dynamic error if the requested content-type is not supported. |
err:XD0079 | It is a dynamic error if a supplied content-type is not a valid media type of the form “type/subtype+ext” or “type/subtype”. |
Implementation details
Implementation | Description |
---|---|
Defined | The use of media type parameters on the content-type option is implementation-defined. |
Defined | If the content-type option is not specified, the output type is implementation-defined. |
Defined | A formatter may take any number of optional rendering parameters via the step's parameters; such parameters are defined by the XSL implementation used and are implementation-defined. |
Declaration
<p:declare-step
type
="
p:xsl-formatter
"
>
<p:input
port
="
source
"
content-types
="
xml
"
/>
<p:output
port
="
result
"
content-types
="
any
"
/>
<p:option
name
="
parameters
"
as
="
map(xs:QName,item()*)?
"
/>
<p:option
name
="
content-type
"
as
="
xs:string?
"
/>
</p:declare-step>
The content-type of the output is controlled by the content-type
option. This option specifies a media type as defined by [IANA Media Types]. It is a dynamic error (err:XD0079
) if a supplied content-type is not a valid media type of the form “
” or “type
/subtype
+ext
”. The option may include media type parameters as well (e.g. "application/someformat; charset=UTF-8"). The use of media type parameters on the type
/subtype
content-type
option is implementation-defined.
If the content-type
option is not specified, the output type is implementation-defined. The default should be PDF. It is a dynamic error (err:XC0204
) if the requested content-type is not supported.
A formatter may take any number of optional rendering parameters via the step's parameters
; such parameters are defined by the XSL implementation used and are implementation-defined.
The output of this step is a document containing the result of processing. This is often, but not necessarily, a PDF document.
It is a dynamic error (err:XC0167
) if the requested document cannot be produced.
Document properties
No document properties are preserved.
This step can raise dynamic errors.
[Definition: A dynamic error is one which occurs while a pipeline is being evaluated.] Examples of dynamic errors include references to URIs that cannot be resolved, steps which fail, and pipelines that exhaust the capacity of an implementation (such as memory or disk space). For a more complete discussion of dynamic errors, see Dynamic Errors in XProc 3.0: An XML Pipeline Language.
If a step fails due to a dynamic error, failure propagates upwards until either a p:try
is encountered or the entire pipeline fails. In other words, outside of a p:try
, step failure causes the entire pipeline to fail.
The following errors can be raised by this step:
err:XC0166
It is a dynamic error if the requested document cannot be produced.
See: p:css-formatter
err:XC0167
It is a dynamic error if the requested document cannot be produced.
See: p:xsl-formatter
err:XC0204
It is a dynamic error if the requested content-type is not supported.
A. Conformance
Conformant processors must implement all of the features described in this specification except those that are explicitly identified as optional.
Some aspects of processor behavior are not completely specified; those features are either implementation-dependent or implementation-defined.
[Definition: 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.]
[Definition: 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.]
The following features are implementation-defined:
- The use of media type parameters on the content-type option is implementation-defined. See Section 2.1, “p:css-formatter”.
- If the content-type option is not specified, the output type is implementation-defined. See Section 2.1, “p:css-formatter”.
- The precise way that the p:css-formatter step selects stylesheets is implementation-defined. See Section 2.1, “p:css-formatter”.
- A formatter may take any number of optional rendering parameters via the step's parameters; such parameters are defined by the CSS implementation used and are implementation-defined. See Section 2.1, “p:css-formatter”.
- The CSS level and the particular CSS features supported by p:css-formatter are implementation-defined. See Section 2.1, “p:css-formatter”.
- The use of media type parameters on the content-type option is implementation-defined. See Section 2.2, “p:xsl-formatter”.
- If the content-type option is not specified, the output type is implementation-defined. See Section 2.2, “p:xsl-formatter”.
- A formatter may take any number of optional rendering parameters via the step's parameters; such parameters are defined by the XSL implementation used and are implementation-defined. See Section 2.2, “p:xsl-formatter”.
B. References
[XProc 3.1] XProc 3.1: An XML Pipeline Language. Norman Walsh, Achim Berndzen, Gerrit Imsieke and Erik Siegel, editors.
[CSS] CSS Snapshot 2018. Tab Atkins Jr., Elika J. Etemad, and Florial Rivoal editors. W3C Note 22 January 2019.
[XSL 1.1] Extensible Stylesheet Language (XSL) Version 1.1. Anders Berglund, editor. W3C Recommendation. 5 December 2006.
[IANA Media Types] IANA MIME Media Types. Internet Engineering Task Force.
C. Glossary
- dynamic error
A dynamic error is one which occurs while a pipeline is being evaluated.
- implementation-defined
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.
- implementation-dependent
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.
D. Ancillary files
This specification includes by reference a number of ancillary files.
- steps.xpl
An XProc step library for the declared steps.