XProc 3.0/3.1 Step List
Description
This directory to XProc steps was generated by querying the specification documents. Because those documents have machined consistency (having been maintained and produced in XProc), it is feasible for an automated, testable process to stitch them all together with links to them and to similarly derived documents, such as Erik Siegel's invaluable XProcRef.
Standard steps in this list are the core atomic steps required by the XProc Specification for all XProc engines.
Additionally the page lists all the steps defined in community specifications but not required for compliance.
At the top, find links for the core compound steps, for-each,
try/catch etc.
The following documents define the optional, community-standard steps (and are also linked from their steps):
- Dynamic pipeline execution (
p:run): A step that runs pipelines constructed dynamically. - File steps: Steps related to accessing files on a filesystem (rename, move, delete, etc.).
- Operating system steps: Steps related to accessing aspects of the underlying operating system (information about the system and the ability to execute commands on it).
- Mail steps: Steps related to email.
- Paged media steps: Steps related to producing paged media (for instance PDF files).
- Text steps: Steps related to accessing text files (for instance Markdown).
- Validation steps: Steps related to validation of XML.
- Invisible XML: Steps related to processing Invisible XML.
The step list here is derived from the XProc code base and may show steps not yet added to the published specification, because still in process.
To use
XProc Steps are shown with links to their definitions in libraries and references, at top right.
Visual indications (grey fading) show if a step is not implemented or not yet offered in MorganaXProc-IIIse. Because the logic determining this property may fall behind the product offering, some diligence is also called for. (XML Calabash offerings are not yet so marked: please refer to its documentation.)
The buttons provide for copying code blocks to the user's clipboard (on up-to-date browsers).
Core compound steps
STANDARD library
p:add-attribute
<p:add-attribute name="DO_add-attribute" attribute-name="[xs:QName]" attribute-value="[xs:string]" match="[xs:string] '/*'"> <p:with-input port="source" content-types="xml html"/> </p:add-attribute>
<p:with-input port="..." pipe="@DO_add-attribute"/>p:add-attribute input
| port | content types | sequence? | primary? |
|---|---|---|---|
| source | xml html | (false) | (true) |
p:add-attribute output
| port | content types | sequence? | primary? |
|---|---|---|---|
| result | xml html | (false) | (true) |
p:add-xml-base
<p:add-xml-base name="DO_add-xml-base" all="[xs:boolean] false()" relative="[xs:boolean] true()"> <p:with-input port="source" content-types="xml html"/> </p:add-xml-base>
<p:with-input port="..." pipe="@DO_add-xml-base"/>p:add-xml-base input
| port | content types | sequence? | primary? |
|---|---|---|---|
| source | xml html | (false) | (true) |
p:add-xml-base output
| port | content types | sequence? | primary? |
|---|---|---|---|
| result | xml html | (false) | (true) |
p:archive
<p:archive name="DO_archive" format="[xs:QName] 'zip'" parameters="[map(xs:QName, item()*)?]" relative-to="[xs:anyURI?]"> <p:with-input port="source" primary="true" content-types="any" sequence="true"/> <p:with-input port="archive" content-types="any" sequence="true"/> <p:with-input port="manifest" content-types="xml" sequence="true"/> </p:archive>
<p:with-input port="..." pipe="result@DO_archive"/><p:with-input port="..." pipe="report@DO_archive"/>p:archive inputs
| port | content types | sequence? | primary? |
|---|---|---|---|
| source | any | true | true |
| archive | any | true | (false) |
| manifest | xml | true | (false) |
p:archive outputs
| port | content types | sequence? | primary? |
|---|---|---|---|
| result | any | false | true |
| report | application/xml | false | (false) |
p:archive-manifest
<p:archive-manifest name="DO_archive-manifest" format="[xs:QName?]" override-content-types="[array(array(xs:string))?]" parameters="[map(xs:QName, item()*)?]" relative-to="[xs:anyURI?]"> <p:with-input port="source" primary="true" content-types="any" sequence="false"/> </p:archive-manifest>
<p:with-input port="..." pipe="@DO_archive-manifest"/>p:archive-manifest input
| port | content types | sequence? | primary? |
|---|---|---|---|
| source | any | false | (true) |
p:archive-manifest output
| port | content types | sequence? | primary? |
|---|---|---|---|
| result | application/xml | false | (true) |
p:cast-content-type
<p:cast-content-type name="DO_cast-content-type" content-type="[xs:string]" parameters="[map(xs:QName,item()*)?]"> <p:with-input port="source" content-types="any"/> </p:cast-content-type>
<p:with-input port="..." pipe="@DO_cast-content-type"/>p:cast-content-type input
| port | content types | sequence? | primary? |
|---|---|---|---|
| source | any | (false) | (true) |
p:cast-content-type output
| port | content types | sequence? | primary? |
|---|---|---|---|
| result | any | (false) | (true) |
p:compare
<p:compare name="DO_compare" fail-if-not-equal="[xs:boolean] false()" method="[xs:QName?]" parameters="[map(xs:QName,item()*)?]"> <p:with-input port="source" primary="true" content-types="any"/> <p:with-input port="alternate" content-types="any"/> </p:compare>
<p:with-input port="..." pipe="result@DO_compare"/><p:with-input port="..." pipe="differences@DO_compare"/>p:compare inputs
| port | content types | sequence? | primary? |
|---|---|---|---|
| source | any | (false) | true |
| alternate | any | (false) | (false) |
p:compare outputs
| port | content types | sequence? | primary? |
|---|---|---|---|
| result | application/xml | (false) | true |
| differences | any | true | (false) |
p:compress
<p:compress name="DO_compress" format="[xs:QName] 'gzip'" parameters="[map(xs:QName, item()*)?]" serialization="[map(xs:QName,item()*)?]"> <p:with-input port="source" primary="true" content-types="any" sequence="false"/> </p:compress>
<p:with-input port="..." pipe="@DO_compress"/>p:compress input
| port | content types | sequence? | primary? |
|---|---|---|---|
| source | any | false | (true) |
p:compress output
| port | content types | sequence? | primary? |
|---|---|---|---|
| result | any | false | (true) |
p:count
<p:count name="DO_count" limit="[xs:integer] 0"> <p:with-input port="source" content-types="any" sequence="true"/> </p:count>
<p:with-input port="..." pipe="@DO_count"/>p:count input
| port | content types | sequence? | primary? |
|---|---|---|---|
| source | any | true | (true) |
p:count output
| port | content types | sequence? | primary? |
|---|---|---|---|
| result | application/xml | (false) | (true) |
p:delete
<p:delete name="DO_delete" match="[xs:string]"> <p:with-input port="source" content-types="xml html"/> </p:delete>
<p:with-input port="..." pipe="@DO_delete"/>p:delete input
| port | content types | sequence? | primary? |
|---|---|---|---|
| source | xml html | (false) | (true) |
p:delete output
| port | content types | sequence? | primary? |
|---|---|---|---|
| result | text xml html | (false) | (true) |
p:encode
<p:encode name="DO_encode" encoding="[xs:string] 'base64'" serialization="[map(xs:QName,item()*)?]"> <p:with-input port="source"/> </p:encode>
<p:with-input port="..." pipe="@DO_encode"/>p:encode input
| port | content types | sequence? | primary? |
|---|---|---|---|
| source | (false) | (true) |
p:encode output
| port | content types | sequence? | primary? |
|---|---|---|---|
| result | application/xml | (false) | (true) |
p:error
<p:error name="DO_error" code="[xs:QName]"> <p:with-input port="source" sequence="true" content-types="text xml"/> </p:error>
<p:with-input port="..." pipe="@DO_error"/>p:error input
| port | content types | sequence? | primary? |
|---|---|---|---|
| source | text xml | true | (true) |
p:error output
| port | content types | sequence? | primary? |
|---|---|---|---|
| result | any | true | (true) |
p:filter
<p:filter name="DO_filter" select="[xs:string]"> <p:with-input port="source" content-types="xml html"/> </p:filter>
<p:with-input port="..." pipe="@DO_filter"/>p:filter input
| port | content types | sequence? | primary? |
|---|---|---|---|
| source | xml html | (false) | (true) |
p:filter output
| port | content types | sequence? | primary? |
|---|---|---|---|
| result | text xml html json | true | (true) |
p:hash
<p:hash name="DO_hash" algorithm="[xs:QName]" match="[xs:string] '/*/node()'" parameters="[map(xs:QName,item()*)?]" value="[xs:string]" version="[xs:string?]"> <p:with-input port="source" primary="true" content-types="xml html"/> </p:hash>
<p:with-input port="..." pipe="@DO_hash"/>p:hash input
| port | content types | sequence? | primary? |
|---|---|---|---|
| source | xml html | (false) | (true) |
p:hash output
| port | content types | sequence? | primary? |
|---|---|---|---|
| result | text xml html | (false) | (true) |
p:http-request
<p:http-request name="DO_http-request" assert="[xs:string] '.?status-code lt 400'" auth="[map(xs:string, item()+)?]" headers="[map(xs:string, xs:string)?]" href="[xs:anyURI]" method="[xs:string?] 'GET'" parameters="[map(xs:QName, item()*)?]" serialization="[map(xs:QName,item()*)?]"> <p:with-input port="source" content-types="any" sequence="true"/> </p:http-request>
<p:with-input port="..." pipe="result@DO_http-request"/><p:with-input port="..." pipe="report@DO_http-request"/>p:http-request input
| port | content types | sequence? | primary? |
|---|---|---|---|
| source | any | true | (true) |
p:http-request outputs
| port | content types | sequence? | primary? |
|---|---|---|---|
| result | any | true | true |
| report | application/json | (false) | (false) |
p:identity
<p:identity name="DO_identity">
<p:with-input port="source" sequence="true" content-types="any"/>
</p:identity><p:with-input port="..." pipe="@DO_identity"/>p:identity input
| port | content types | sequence? | primary? |
|---|---|---|---|
| source | any | true | (true) |
p:identity output
| port | content types | sequence? | primary? |
|---|---|---|---|
| result | any | true | (true) |
p:insert
<p:insert name="DO_insert" match="[xs:string] '/*'" position="[] 'after'"> <p:with-input port="source" primary="true" content-types="xml html"/> <p:with-input port="insertion" sequence="true" content-types="xml html text"/> </p:insert>
<p:with-input port="..." pipe="@DO_insert"/>p:insert inputs
| port | content types | sequence? | primary? |
|---|---|---|---|
| source | xml html | (false) | true |
| insertion | xml html text | true | (false) |
p:insert output
| port | content types | sequence? | primary? |
|---|---|---|---|
| result | xml html text | (false) | (true) |
p:json-join
<p:json-join name="DO_json-join" flatten-to-depth="[xs:string?] '0'"> <p:with-input port="source" sequence="true" content-types="any"/> </p:json-join>
<p:with-input port="..." pipe="@DO_json-join"/>p:json-join input
| port | content types | sequence? | primary? |
|---|---|---|---|
| source | any | true | (true) |
p:json-join output
| port | content types | sequence? | primary? |
|---|---|---|---|
| result | application/json | (false) | (true) |
p:json-merge
<p:json-merge name="DO_json-merge" duplicates="[] 'use-first'" key="[xs:string] 'concat("_",$p:index)'"> <p:with-input port="source" sequence="true" content-types="any"/> </p:json-merge>
<p:with-input port="..." pipe="@DO_json-merge"/>p:json-merge input
| port | content types | sequence? | primary? |
|---|---|---|---|
| source | any | true | (true) |
p:json-merge output
| port | content types | sequence? | primary? |
|---|---|---|---|
| result | application/json | (false) | (true) |
p:label-elements
<p:label-elements name="DO_label-elements" attribute="[xs:QName] 'xml:id'" label="[xs:string] 'concat("_",$p:index)'" match="[xs:string] '*'" replace="[xs:boolean] true()"> <p:with-input port="source" content-types="xml html"/> </p:label-elements>
<p:with-input port="..." pipe="@DO_label-elements"/>p:label-elements input
| port | content types | sequence? | primary? |
|---|---|---|---|
| source | xml html | (false) | (true) |
p:label-elements output
| port | content types | sequence? | primary? |
|---|---|---|---|
| result | xml html | (false) | (true) |
p:load
<p:load name="DO_load" content-type="[xs:string?]" document-properties="[map(xs:QName, item()*)?]" href="[xs:anyURI]" parameters="[map(xs:QName,item()*)?]"/>
<p:with-input port="..." pipe="@DO_load"/>p:load output
| port | content types | sequence? | primary? |
|---|---|---|---|
| result | any | (false) | (true) |
p:make-absolute-uris
<p:make-absolute-uris name="DO_make-absolute-uris" base-uri="[xs:anyURI?]" match="[xs:string]"> <p:with-input port="source" content-types="xml html"/> </p:make-absolute-uris>
<p:with-input port="..." pipe="@DO_make-absolute-uris"/>p:make-absolute-uris input
| port | content types | sequence? | primary? |
|---|---|---|---|
| source | xml html | (false) | (true) |
p:make-absolute-uris output
| port | content types | sequence? | primary? |
|---|---|---|---|
| result | xml html | (false) | (true) |
p:message
<p:message name="DO_message" select="[item()*]" test="[xs:boolean] true()"> <p:with-input port="source" sequence="true"/> </p:message>
<p:with-input port="..." pipe="@DO_message"/>p:message input
| port | content types | sequence? | primary? |
|---|---|---|---|
| source | true | (true) |
p:message output
| port | content types | sequence? | primary? |
|---|---|---|---|
| result | true | (true) |
p:namespace-delete
<p:namespace-delete name="DO_namespace-delete" prefixes="[xs:string]"> <p:with-input port="source" content-types="xml html"/> </p:namespace-delete>
<p:with-input port="..." pipe="@DO_namespace-delete"/>p:namespace-delete input
| port | content types | sequence? | primary? |
|---|---|---|---|
| source | xml html | (false) | (true) |
p:namespace-delete output
| port | content types | sequence? | primary? |
|---|---|---|---|
| result | xml html | (false) | (true) |
p:namespace-rename
<p:namespace-rename name="DO_namespace-rename" apply-to="[] 'all'" from="[xs:anyURI?]" to="[xs:anyURI?]"> <p:with-input port="source" content-types="xml html"/> </p:namespace-rename>
<p:with-input port="..." pipe="@DO_namespace-rename"/>p:namespace-rename input
| port | content types | sequence? | primary? |
|---|---|---|---|
| source | xml html | (false) | (true) |
p:namespace-rename output
| port | content types | sequence? | primary? |
|---|---|---|---|
| result | xml html | (false) | (true) |
p:pack
<p:pack name="DO_pack" attributes="[map(xs:QName, xs:anyAtomicType)?]" wrapper="[xs:QName]"> <p:with-input port="source" content-types="text xml html" sequence="true" primary="true"/> <p:with-input port="alternate" sequence="true" content-types="text xml html"/> </p:pack>
<p:with-input port="..." pipe="@DO_pack"/>p:pack inputs
| port | content types | sequence? | primary? |
|---|---|---|---|
| source | text xml html | true | true |
| alternate | text xml html | true | (false) |
p:pack output
| port | content types | sequence? | primary? |
|---|---|---|---|
| result | application/xml | true | (true) |
p:rename
<p:rename name="DO_rename" match="[xs:string] '/*'" new-name="[xs:QName]"> <p:with-input port="source" content-types="xml html"/> </p:rename>
<p:with-input port="..." pipe="@DO_rename"/>p:rename input
| port | content types | sequence? | primary? |
|---|---|---|---|
| source | xml html | (false) | (true) |
p:rename output
| port | content types | sequence? | primary? |
|---|---|---|---|
| result | xml html | (false) | (true) |
p:replace
<p:replace name="DO_replace" match="[xs:string]"> <p:with-input port="source" primary="true" content-types="xml html"/> <p:with-input port="replacement" content-types="text xml html"/> </p:replace>
<p:with-input port="..." pipe="@DO_replace"/>p:replace inputs
| port | content types | sequence? | primary? |
|---|---|---|---|
| source | xml html | (false) | true |
| replacement | text xml html | (false) | (false) |
p:replace output
| port | content types | sequence? | primary? |
|---|---|---|---|
| result | text xml html | (false) | (true) |
p:set-attributes
<p:set-attributes name="DO_set-attributes" attributes="[map(xs:QName, xs:anyAtomicType)]" match="[xs:string] '/*'"> <p:with-input port="source" primary="true" content-types="xml html"/> </p:set-attributes>
<p:with-input port="..." pipe="@DO_set-attributes"/>p:set-attributes input
| port | content types | sequence? | primary? |
|---|---|---|---|
| source | xml html | (false) | (true) |
p:set-attributes output
| port | content types | sequence? | primary? |
|---|---|---|---|
| result | xml html | (false) | (true) |
p:set-properties
<p:set-properties name="DO_set-properties" merge="[xs:boolean] true()" properties="[map(xs:QName,item()*)]"> <p:with-input port="source" content-types="any"/> </p:set-properties>
<p:with-input port="..." pipe="@DO_set-properties"/>p:set-properties input
| port | content types | sequence? | primary? |
|---|---|---|---|
| source | any | (false) | (true) |
p:set-properties output
| port | content types | sequence? | primary? |
|---|---|---|---|
| result | any | (false) | (true) |
p:sink
<p:sink name="DO_sink">
<p:with-input port="source" content-types="any" sequence="true"/>
</p:sink>p:sink input
| port | content types | sequence? | primary? |
|---|---|---|---|
| source | any | true | (true) |
p:sleep
<p:sleep name="DO_sleep" duration="[xs:string]"> <p:with-input port="source" sequence="true" content-types="any"/> </p:sleep>
<p:with-input port="..." pipe="@DO_sleep"/>p:sleep input
| port | content types | sequence? | primary? |
|---|---|---|---|
| source | any | true | (true) |
p:sleep output
| port | content types | sequence? | primary? |
|---|---|---|---|
| result | any | true | (true) |
p:split-sequence
<p:split-sequence name="DO_split-sequence" initial-only="[xs:boolean] false()" test="[xs:string]"> <p:with-input port="source" content-types="any" sequence="true"/> </p:split-sequence>
<p:with-input port="..." pipe="matched@DO_split-sequence"/><p:with-input port="..." pipe="not-matched@DO_split-sequence"/>p:split-sequence input
| port | content types | sequence? | primary? |
|---|---|---|---|
| source | any | true | (true) |
p:split-sequence outputs
| port | content types | sequence? | primary? |
|---|---|---|---|
| matched | any | true | true |
| not-matched | any | true | (false) |
p:store
<p:store name="DO_store" href="[xs:anyURI]" serialization="[map(xs:QName,item()*)?]"> <p:with-input port="source" content-types="any"/> </p:store>
<p:with-input port="..." pipe="result@DO_store"/><p:with-input port="..." pipe="result-uri@DO_store"/>p:store input
| port | content types | sequence? | primary? |
|---|---|---|---|
| source | any | (false) | (true) |
p:store outputs
| port | content types | sequence? | primary? |
|---|---|---|---|
| result | any | (false) | true |
| result-uri | application/xml | (false) | (false) |
p:string-replace
<p:string-replace name="DO_string-replace" match="[xs:string]" replace="[xs:string]"> <p:with-input port="source" content-types="xml html"/> </p:string-replace>
<p:with-input port="..." pipe="@DO_string-replace"/>p:string-replace input
| port | content types | sequence? | primary? |
|---|---|---|---|
| source | xml html | (false) | (true) |
p:string-replace output
| port | content types | sequence? | primary? |
|---|---|---|---|
| result | text xml html | (false) | (true) |
p:text-count
<p:text-count name="DO_text-count">
<p:with-input port="source" primary="true" sequence="false" content-types="text"/>
</p:text-count><p:with-input port="..." pipe="@DO_text-count"/>p:text-count input
| port | content types | sequence? | primary? |
|---|---|---|---|
| source | text | false | (true) |
p:text-count output
| port | content types | sequence? | primary? |
|---|---|---|---|
| result | application/xml | false | (true) |
p:text-head
<p:text-head name="DO_text-head" count="[xs:integer]"> <p:with-input port="source" primary="true" sequence="false" content-types="text"/> </p:text-head>
<p:with-input port="..." pipe="@DO_text-head"/>p:text-head input
| port | content types | sequence? | primary? |
|---|---|---|---|
| source | text | false | (true) |
p:text-head output
| port | content types | sequence? | primary? |
|---|---|---|---|
| result | text | false | (true) |
p:text-join
<p:text-join name="DO_text-join" override-content-type="[xs:string?]" prefix="[xs:string?]" separator="[xs:string?]" suffix="[xs:string?]"> <p:with-input port="source" sequence="true" content-types="text"/> </p:text-join>
<p:with-input port="..." pipe="@DO_text-join"/>p:text-join input
| port | content types | sequence? | primary? |
|---|---|---|---|
| source | text | true | (true) |
p:text-join output
| port | content types | sequence? | primary? |
|---|---|---|---|
| result | text | (false) | (true) |
p:text-replace
<p:text-replace name="DO_text-replace" flags="[xs:string?]" pattern="[xs:string]" replacement="[xs:string]"> <p:with-input port="source" primary="true" sequence="false" content-types="text"/> </p:text-replace>
<p:with-input port="..." pipe="@DO_text-replace"/>p:text-replace input
| port | content types | sequence? | primary? |
|---|---|---|---|
| source | text | false | (true) |
p:text-replace output
| port | content types | sequence? | primary? |
|---|---|---|---|
| result | text | false | (true) |
p:text-sort
<p:text-sort name="DO_text-sort" case-order="[xs:string?]" collation="[xs:string] 'http://www.w3.org/2005/xpath-functions/collation/codepoint'" lang="[xs:language?]" order="[xs:string] 'ascending'" sort-key="[xs:string] '.'" stable="[xs:boolean] true()"> <p:with-input port="source" primary="true" sequence="false" content-types="text"/> </p:text-sort>
<p:with-input port="..." pipe="@DO_text-sort"/>p:text-sort input
| port | content types | sequence? | primary? |
|---|---|---|---|
| source | text | false | (true) |
p:text-sort output
| port | content types | sequence? | primary? |
|---|---|---|---|
| result | text | false | (true) |
p:text-tail
<p:text-tail name="DO_text-tail" count="[xs:integer]"> <p:with-input port="source" primary="true" sequence="false" content-types="text"/> </p:text-tail>
<p:with-input port="..." pipe="@DO_text-tail"/>p:text-tail input
| port | content types | sequence? | primary? |
|---|---|---|---|
| source | text | false | (true) |
p:text-tail output
| port | content types | sequence? | primary? |
|---|---|---|---|
| result | text | false | (true) |
p:unarchive
<p:unarchive name="DO_unarchive" exclude-filter="[xs:string*]" format="[xs:QName?]" include-filter="[xs:string*]" override-content-types="[array(array(xs:string))?]" parameters="[map(xs:QName, item()*)?]" relative-to="[xs:anyURI?]"> <p:with-input port="source" primary="true" content-types="any" sequence="false"/> </p:unarchive>
<p:with-input port="..." pipe="@DO_unarchive"/>p:unarchive input
| port | content types | sequence? | primary? |
|---|---|---|---|
| source | any | false | (true) |
p:unarchive output
| port | content types | sequence? | primary? |
|---|---|---|---|
| result | any | true | (true) |
p:uncompress
<p:uncompress name="DO_uncompress" content-type="[xs:string] 'application/octet-stream'" format="[xs:QName?]" parameters="[map(xs:QName,item()*)?]"> <p:with-input port="source" primary="true" content-types="any" sequence="false"/> </p:uncompress>
<p:with-input port="..." pipe="@DO_uncompress"/>p:uncompress input
| port | content types | sequence? | primary? |
|---|---|---|---|
| source | any | false | (true) |
p:uncompress output
| port | content types | sequence? | primary? |
|---|---|---|---|
| result | any | false | (true) |
p:unwrap
<p:unwrap name="DO_unwrap" match="[xs:string] '/*'"> <p:with-input port="source" content-types="xml html"/> </p:unwrap>
<p:with-input port="..." pipe="@DO_unwrap"/>p:unwrap input
| port | content types | sequence? | primary? |
|---|---|---|---|
| source | xml html | (false) | (true) |
p:unwrap output
| port | content types | sequence? | primary? |
|---|---|---|---|
| result | text xml html | (false) | (true) |
p:uuid
<p:uuid name="DO_uuid" match="[xs:string] '/*'" parameters="[map(xs:QName, item()*)?]" version="[xs:integer?]"> <p:with-input port="source" primary="true" content-types="xml html"/> </p:uuid>
<p:with-input port="..." pipe="@DO_uuid"/>p:uuid input
| port | content types | sequence? | primary? |
|---|---|---|---|
| source | xml html | (false) | (true) |
p:uuid output
| port | content types | sequence? | primary? |
|---|---|---|---|
| result | text xml html | (false) | (true) |
p:wrap
<p:wrap name="DO_wrap" attributes="[map(xs:QName, xs:anyAtomicType)?]" group-adjacent="[xs:string?]" match="[xs:string]" wrapper="[xs:QName]"> <p:with-input port="source" content-types="xml html"/> </p:wrap>
<p:with-input port="..." pipe="@DO_wrap"/>p:wrap input
| port | content types | sequence? | primary? |
|---|---|---|---|
| source | xml html | (false) | (true) |
p:wrap output
| port | content types | sequence? | primary? |
|---|---|---|---|
| result | application/xml | (false) | (true) |
p:wrap-sequence
<p:wrap-sequence name="DO_wrap-sequence" attributes="[map(xs:QName, xs:anyAtomicType)?]" group-adjacent="[xs:string?]" wrapper="[xs:QName]"> <p:with-input port="source" content-types="text xml html" sequence="true"/> </p:wrap-sequence>
<p:with-input port="..." pipe="@DO_wrap-sequence"/>p:wrap-sequence input
| port | content types | sequence? | primary? |
|---|---|---|---|
| source | text xml html | true | (true) |
p:wrap-sequence output
| port | content types | sequence? | primary? |
|---|---|---|---|
| result | application/xml | true | (true) |
p:www-form-urldecode
<p:www-form-urldecode name="DO_www-form-urldecode"
value="[xs:string]"/><p:with-input port="..." pipe="@DO_www-form-urldecode"/>p:www-form-urldecode output
| port | content types | sequence? | primary? |
|---|---|---|---|
| result | application/json | (false) | (true) |
p:www-form-urlencode
<p:www-form-urlencode name="DO_www-form-urlencode"
parameters="[map(xs:string,xs:anyAtomicType+)]"/><p:with-input port="..." pipe="@DO_www-form-urlencode"/>p:www-form-urlencode output
| port | content types | sequence? | primary? |
|---|---|---|---|
| result | text/plain | (false) | (true) |
p:xinclude
<p:xinclude name="DO_xinclude" fixup-xml-base="[xs:boolean] false()" fixup-xml-lang="[xs:boolean] false()"> <p:with-input port="source" content-types="xml html"/> </p:xinclude>
<p:with-input port="..." pipe="@DO_xinclude"/>p:xinclude input
| port | content types | sequence? | primary? |
|---|---|---|---|
| source | xml html | (false) | (true) |
p:xinclude output
| port | content types | sequence? | primary? |
|---|---|---|---|
| result | xml html | (false) | (true) |
p:xquery
<p:xquery name="DO_xquery" parameters="[map(xs:QName,item()*)?]" version="[xs:string?]"> <p:with-input port="source" content-types="any" sequence="true" primary="true"/> <p:with-input port="query" content-types="text xml"/> </p:xquery>
<p:with-input port="..." pipe="@DO_xquery"/>p:xquery inputs
| port | content types | sequence? | primary? |
|---|---|---|---|
| source | any | true | true |
| query | text xml | (false) | (false) |
p:xquery output
| port | content types | sequence? | primary? |
|---|---|---|---|
| result | any | true | (true) |
p:xslt
<p:xslt name="DO_xslt" 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?]"> <p:with-input port="source" content-types="any" sequence="true" primary="true"/> <p:with-input port="stylesheet" content-types="xml"/> </p:xslt>
<p:with-input port="..." pipe="result@DO_xslt"/><p:with-input port="..." pipe="secondary@DO_xslt"/>p:xslt inputs
| port | content types | sequence? | primary? |
|---|---|---|---|
| source | any | true | true |
| stylesheet | xml | (false) | (false) |
p:xslt outputs
| port | content types | sequence? | primary? |
|---|---|---|---|
| result | any | true | true |
| secondary | any | true | (false) |
IXML library
p:invisible-xml
<p:invisible-xml name="DO_invisible-xml" fail-on-error="[xs:boolean] true()" parameters="[map(xs:QName, item()*)?]"> <p:with-input port="source" primary="true" content-types="any -xml -html"/> <p:with-input port="grammar" sequence="true" content-types="text xml"/> </p:invisible-xml>
<p:with-input port="..." pipe="@DO_invisible-xml"/>p:invisible-xml inputs
| port | content types | sequence? | primary? |
|---|---|---|---|
| source | any -xml -html | (false) | true |
| grammar | text xml | true | (false) |
p:invisible-xml output
| port | content types | sequence? | primary? |
|---|---|---|---|
| result | any | true | (true) |
MAIL library
p:send-mail
Unsupported in MorganaXProc-IIIse
<p:send-mail name="DO_send-mail" auth="[map(xs:string, item()+)?]" parameters="[map(xs:QName, item()*)?]" serialization="[map(xs:QName,item()*)?]"> <p:with-input port="source" sequence="true" content-types="any"/> </p:send-mail>
<p:with-input port="..." pipe="@DO_send-mail"/>p:send-mail input
| port | content types | sequence? | primary? |
|---|---|---|---|
| source | any | true | (true) |
p:send-mail output
| port | content types | sequence? | primary? |
|---|---|---|---|
| result | application/xml | (false) | (true) |
FILE library
p:directory-list
<p:directory-list name="DO_directory-list" detailed="[xs:boolean] false()" exclude-filter="[xs:string*]" include-filter="[xs:string*]" max-depth="[xs:string?] '1'" override-content-types="[array(array(xs:string))?]" path="[xs:anyURI]"/>
<p:with-input port="..." pipe="@DO_directory-list"/>p:directory-list output
| port | content types | sequence? | primary? |
|---|---|---|---|
| result | application/xml | (false) | (true) |
p:file-copy
<p:file-copy name="DO_file-copy" fail-on-error="[xs:boolean] true()" href="[xs:anyURI]" overwrite="[xs:boolean] true()" target="[xs:anyURI]"/>
<p:with-input port="..." pipe="@DO_file-copy"/>p:file-copy output
| port | content types | sequence? | primary? |
|---|---|---|---|
| result | application/xml | (false) | (true) |
p:file-delete
<p:file-delete name="DO_file-delete" fail-on-error="[xs:boolean] true()" href="[xs:anyURI]" recursive="[xs:boolean] false()"/>
<p:with-input port="..." pipe="@DO_file-delete"/>p:file-delete output
| port | content types | sequence? | primary? |
|---|---|---|---|
| result | application/xml | (false) | (true) |
p:file-info
<p:file-info name="DO_file-info" fail-on-error="[xs:boolean] true()" href="[xs:anyURI]" override-content-types="[array(array(xs:string))?]"/>
<p:with-input port="..." pipe="@DO_file-info"/>p:file-info output
| port | content types | sequence? | primary? |
|---|---|---|---|
| result | application/xml | (false) | (true) |
p:file-mkdir
<p:file-mkdir name="DO_file-mkdir" fail-on-error="[xs:boolean] true()" href="[xs:anyURI]"/>
<p:with-input port="..." pipe="@DO_file-mkdir"/>p:file-mkdir output
| port | content types | sequence? | primary? |
|---|---|---|---|
| result | application/xml | (false) | (true) |
p:file-move
<p:file-move name="DO_file-move" fail-on-error="[xs:boolean] true()" href="[xs:anyURI]" target="[xs:anyURI]"/>
<p:with-input port="..." pipe="@DO_file-move"/>p:file-move output
| port | content types | sequence? | primary? |
|---|---|---|---|
| result | application/xml | (false) | (true) |
p:file-create-tempfile
<p:file-create-tempfile name="DO_file-create-tempfile" delete-on-exit="[xs:boolean] false()" fail-on-error="[xs:boolean] true()" href="[xs:anyURI?]" prefix="[xs:string?]" suffix="[xs:string?]"/>
<p:with-input port="..." pipe="@DO_file-create-tempfile"/>p:file-create-tempfile output
| port | content types | sequence? | primary? |
|---|---|---|---|
| result | application/xml | (false) | (true) |
p:file-touch
<p:file-touch name="DO_file-touch" fail-on-error="[xs:boolean] true()" href="[xs:anyURI]" timestamp="[xs:dateTime?]"/>
<p:with-input port="..." pipe="@DO_file-touch"/>p:file-touch output
| port | content types | sequence? | primary? |
|---|---|---|---|
| result | application/xml | (false) | (true) |
OS library
p:os-info
Unsupported in MorganaXProc-IIIse
<p:os-info name="DO_os-info"/>
<p:with-input port="..." pipe="@DO_os-info"/>p:os-info output
| port | content types | sequence? | primary? |
|---|---|---|---|
| result | application/xml | (false) | (true) |
p:os-exec
Unsupported in MorganaXProc-IIIse
<p:os-exec name="DO_os-exec" args="[xs:string*] ()" command="[xs:string]" cwd="[xs:string?]" error-content-type="[xs:string] 'text/plain'" failure-threshold="[xs:integer?]" path-separator="[xs:string?]" result-content-type="[xs:string] 'text/plain'" serialization="[map(xs:QName,item()*)?]"> <p:with-input port="source" sequence="true" content-types="any"/> </p:os-exec>
<p:with-input port="..." pipe="result@DO_os-exec"/><p:with-input port="..." pipe="error@DO_os-exec"/><p:with-input port="..." pipe="exit-status@DO_os-exec"/>p:os-exec input
| port | content types | sequence? | primary? |
|---|---|---|---|
| source | any | true | (true) |
p:os-exec outputs
| port | content types | sequence? | primary? |
|---|---|---|---|
| result | any | true | true |
| error | any | true | (false) |
| exit-status | application/xml | (false) | (false) |
PAGED-MEDIA library
p:css-formatter
Unsupported in MorganaXProc-IIIse
<p:css-formatter name="DO_css-formatter" content-type="[xs:string?]" parameters="[map(xs:QName,item()*)?]"> <p:with-input port="source" content-types="xml html"/> <p:with-input port="stylesheet" content-types="text" sequence="true"/> </p:css-formatter>
<p:with-input port="..." pipe="@DO_css-formatter"/>p:css-formatter inputs
| port | content types | sequence? | primary? |
|---|---|---|---|
| source | xml html | (false) | (false) |
| stylesheet | text | true | (false) |
p:css-formatter output
| port | content types | sequence? | primary? |
|---|---|---|---|
| result | any | (false) | (true) |
p:xsl-formatter
Unsupported in MorganaXProc-IIIse
<p:xsl-formatter name="DO_xsl-formatter" content-type="[xs:string?]" parameters="[map(xs:QName,item()*)?]"> <p:with-input port="source" content-types="xml"/> </p:xsl-formatter>
<p:with-input port="..." pipe="@DO_xsl-formatter"/>p:xsl-formatter input
| port | content types | sequence? | primary? |
|---|---|---|---|
| source | xml | (false) | (true) |
p:xsl-formatter output
| port | content types | sequence? | primary? |
|---|---|---|---|
| result | any | (false) | (true) |
TEXT library
p:markdown-to-html
Unsupported in MorganaXProc-IIIse
<p:markdown-to-html name="DO_markdown-to-html" parameters="[map(xs:QName, item()*)?]"> <p:with-input port="source" primary="true" content-types="text"/> </p:markdown-to-html>
<p:with-input port="..." pipe="@DO_markdown-to-html"/>p:markdown-to-html input
| port | content types | sequence? | primary? |
|---|---|---|---|
| source | text | (false) | (true) |
p:markdown-to-html output
| port | content types | sequence? | primary? |
|---|---|---|---|
| result | html | (false) | (true) |
VALIDATION library
p:validate-with-nvdl
Unsupported in MorganaXProc-IIIse
<p:validate-with-nvdl name="DO_validate-with-nvdl" assert-valid="[xs:boolean] true()" parameters="[map(xs:QName,item()*)?]" report-format="[xs:string] 'xvrl'"> <p:with-input port="source" primary="true" content-types="xml html"/> <p:with-input port="nvdl" content-types="xml"/> <p:with-input port="schemas" sequence="true" content-types="text xml"/> </p:validate-with-nvdl>
<p:with-input port="..." pipe="result@DO_validate-with-nvdl"/><p:with-input port="..." pipe="report@DO_validate-with-nvdl"/>p:validate-with-nvdl inputs
| port | content types | sequence? | primary? |
|---|---|---|---|
| source | xml html | (false) | true |
| nvdl | xml | (false) | (false) |
| schemas | text xml | true | (false) |
p:validate-with-nvdl outputs
| port | content types | sequence? | primary? |
|---|---|---|---|
| result | xml html | (false) | true |
| report | xml json | true | (false) |
p:validate-with-relax-ng
<p:validate-with-relax-ng name="DO_validate-with-relax-ng" assert-valid="[xs:boolean] true()" dtd-attribute-values="[xs:boolean] false()" dtd-id-idref-warnings="[xs:boolean] false()" parameters="[map(xs:QName,item()*)?]" report-format="[xs:string] 'xvrl'"> <p:with-input port="source" primary="true" content-types="xml html"/> <p:with-input port="schema" content-types="text xml"/> </p:validate-with-relax-ng>
<p:with-input port="..." pipe="result@DO_validate-with-relax-ng"/><p:with-input port="..." pipe="report@DO_validate-with-relax-ng"/>p:validate-with-relax-ng inputs
| port | content types | sequence? | primary? |
|---|---|---|---|
| source | xml html | (false) | true |
| schema | text xml | (false) | (false) |
p:validate-with-relax-ng outputs
| port | content types | sequence? | primary? |
|---|---|---|---|
| result | xml html | (false) | true |
| report | xml json | true | (false) |
p:validate-with-schematron
<p:validate-with-schematron name="DO_validate-with-schematron" assert-valid="[xs:boolean] true()" parameters="[map(xs:QName,item()*)?]" phase="[xs:string] '#DEFAULT'" report-format="[xs:string] 'svrl'"> <p:with-input port="source" primary="true" content-types="xml html"/> <p:with-input port="schema" content-types="xml"/> </p:validate-with-schematron>
<p:with-input port="..." pipe="result@DO_validate-with-schematron"/><p:with-input port="..." pipe="report@DO_validate-with-schematron"/>p:validate-with-schematron inputs
| port | content types | sequence? | primary? |
|---|---|---|---|
| source | xml html | (false) | true |
| schema | xml | (false) | (false) |
p:validate-with-schematron outputs
| port | content types | sequence? | primary? |
|---|---|---|---|
| result | xml html | (false) | true |
| report | xml json | true | (false) |
p:validate-with-xml-schema
<p:validate-with-xml-schema name="DO_validate-with-xml-schema" assert-valid="[xs:boolean] true()" mode="[] 'strict'" parameters="[map(xs:QName,item()*)?]" report-format="[xs:string] 'xvrl'" try-namespaces="[xs:boolean] false()" use-location-hints="[xs:boolean] false()" version="[xs:string?]"> <p:with-input port="source" primary="true" content-types="xml html"/> <p:with-input port="schema" sequence="true" content-types="xml"/> </p:validate-with-xml-schema>
<p:with-input port="..." pipe="result@DO_validate-with-xml-schema"/><p:with-input port="..." pipe="report@DO_validate-with-xml-schema"/>p:validate-with-xml-schema inputs
| port | content types | sequence? | primary? |
|---|---|---|---|
| source | xml html | (false) | true |
| schema | xml | true | (false) |
p:validate-with-xml-schema outputs
| port | content types | sequence? | primary? |
|---|---|---|---|
| result | xml html | (false) | true |
| report | xml json | true | (false) |
p:validate-with-json-schema
<p:validate-with-json-schema name="DO_validate-with-json-schema" assert-valid="[xs:boolean] true()" default-version="[xs:string?]" parameters="[map(xs:QName,item()*)?]" report-format="[xs:string] 'xvrl'"> <p:with-input port="source" primary="true" content-types="json"/> <p:with-input port="schema" sequence="false" content-types="json"/> </p:validate-with-json-schema>
<p:with-input port="..." pipe="result@DO_validate-with-json-schema"/><p:with-input port="..." pipe="report@DO_validate-with-json-schema"/>p:validate-with-json-schema inputs
| port | content types | sequence? | primary? |
|---|---|---|---|
| source | json | (false) | true |
| schema | json | false | (false) |
p:validate-with-json-schema outputs
| port | content types | sequence? | primary? |
|---|---|---|---|
| result | json | (false) | true |
| report | xml json | true | (false) |
p:validate-with-dtd
<p:validate-with-dtd name="DO_validate-with-dtd" assert-valid="[xs:boolean] true()" report-format="[xs:string] 'xvrl'" serialization="[map(xs:QName,item()*)?]"> <p:with-input port="source" primary="true" content-types="xml html"/> </p:validate-with-dtd>
<p:with-input port="..." pipe="result@DO_validate-with-dtd"/><p:with-input port="..." pipe="report@DO_validate-with-dtd"/>p:validate-with-dtd input
| port | content types | sequence? | primary? |
|---|---|---|---|
| source | xml html | (false) | (true) |
p:validate-with-dtd outputs
| port | content types | sequence? | primary? |
|---|---|---|---|
| result | xml html | (false) | true |
| report | xml json | true | (false) |