
MorganaXProc-IIIee (extended edition)
Coming soon! --- Coming soon! --- Coming soon!
MorganaXProc-IIIee (Extended Edition) is a complete implementation of XProc 3.1 (16 March 2025). It covers all required and optional features of the core specification as well as of the standard step specification. In addition all other specified steps of the Additional Specifications are implemented. The only feature not covered (yet) is passing PSVI annotication between steps.
More specific:
-
All required and optional features of the core specs are implemented. In addition to the features implemented in MorganaXProc-IIIse this includes
-
Support for
p:import-functions
for XPath 3.1 functions from XSLT and/or XQuery: Functions defined in XSLT and/or XQuery can be used in XPath expressions in XProc. With extension attribute
[p:]timeout
pipeline authors can control long running steps by suggesting a duration after which the processor aborts step execution and raises a dynamic error.While MorganaXProc-IIIee comes with a large library of steps and XProc offers the possibility to define new steps based on this steps, there might be cases where a step is needed to perform additional operations. With atomic extension steps programmers can do exactly this by declaring an atomic step and use attribute
mox:class
to specify the class ( in a JVM compatible language like Java, Scala, Kotlin) implementing this step.
-
As with MorganaXProc-IIIse, all file steps like
p:directory-list
,p:file-copy
,p:file-delete
,p:file-mkdir
etc. are supported.In addition to the validation steps supported by MorganaXProc-IIIse, validation with NVDL (
p:validate-with-nvdl
) and DTD (p:validate-with-dtd
) are implemented.Dynamic pipeline execution with
p:run
is supported. This allows users to run an XProc pipeline which is dynamically created, i.e. by another XProc pipeline, an XSLT stylesheet, etc.The operation system steps
p:os-info
andp:os-exec
are supported. Stepp:os-info
allows authors to obtain information about the operation system underlying the pipeline's execution. Withp:os-exec
external (non XProc) commands are executed. Those commands can get there standard input from a pipeline, and return there standard output and standard error to the pipeline, allowing interaction between XProc and non XProc algorithms.With the paged media step, XProc pipelines can created paged media like PDF. While
p:xsl-formatter
takes XSL as source to produce paged media formats. Stepp:css-formatter
applies CSS (for paged media) to XML or HTML documents. Currently XSL processing uses Apache⢠FOP. A connector for another XSL processor is in final testing. CSS processing is done with WeasyPrint.-
The extended edition also offers support for processing Invisible XML (
p:invisible-xml (p:ixml)
), sending e-mails viap:send-mail
, and implements text related steps (likep:markdown-to-html
). In addition to the steps and features specified by the XProc 3.1 community group, MorganaXProc-IIIee comes with processor-provided extension steps like
mox:profile-image
,mox:convert-image
, ormox:text-wrap-lines
. Some useful extension functions are supplied too, e.g.mox:is-well-formed-document()
ormox:evaluate-xpath()
.MorganaXProc-IIIee is also the primary target to implement optimizations to speed up pipeline execution. The most effective so far is an advanced implementation of p:for-each using system threads to process documents parallel. More of this is to come in the future.
For a full overview please see feature matrix.
MorganaXProc-IIIee will be available with a perpetual license including free updates for one year, and early access to critical bug fixes primarily for a single computer (desktop or laptop). Other types of license might be available on request.