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: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 | 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: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" 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:nonNegativeInteger]"> <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-sequence
<p:wrap-sequence name="DO_wrap-sequence" 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:wrap
<p:wrap name="DO_wrap" 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: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) |
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) |