Impressum/Imprint Datenschutz

MorganaXProc-III is an implementation of XProc 3.1: An XML Pipeline Language. The basic goal is to develop a compliant, user-friendly, and efficient (in that order) processor. It is written in Java, so an installed Java Virtual Machine (JVM) is a prerequisite. Currently Java version 8.0 and 11 (or later) are supported.

Compliant

MorganaXProc-III attempts to be a fully compliant implementation of XProc 3.1, supporting all required and optional features of the core specification as well as all steps declared in various specification documents. This goal is currently accomplished with the exception of support for PSVI in XProc. Please note that MorganaXProc-IIIse (the "standard edition" released as open source product under GPL 3.0) has a restricted feature set. See feature matrix for details. MorganaXProc-III's results against the XProc 3.1 test-suite are reasonably good.

User-friendly

MorganaXProc-III's implementation of XProc 3.1 is developed with an emphasis on user-friendliness. As a practical consequence, MorganaXProc-III is highly configurable and allows users to select their favorite tools for a number of steps: For <p:xslt/> you can choose between Java's build in XSLT-processor, or use different versions and editions of SaxonJ. Similarly you can choose between Xerxes or Saxon-EE to perform a validation against an XML-schema, or between SchXSLT or Skeleton implementation for Schematron validation, etc. Processing for Invisible XML via <p:ixml/> was implemented offering a choice between Markup Blitz by Gunther Rademacher or the NineML tools developed by Norm Tovey-Walsh. To manage your resources, MorganaXProc-III supports Norm Tovey-Walsh's XMLResolver out of the box. Rendering XSL-documents with <p:xsl-formatter /> is currently based on Apache FOP. Support for Antenna House Formatter is under construction. Support for more technologies on these and other steps to come.

Efficient

As a declarative language, XProc 3.1 offers many starting points for optimization, either to speed-up execution speed, or reduce memory consumption, or both. MorganaXProc-III by design uses many of this starting points to compile and execute pipelines, e.g. by optimizing away unused connections to improve speed and reduce the amount of memory. For Java 8.0 there is an execution environment based on Quasar running independent step sequences in parallel to each other. This improves execution speed by taking advance of modern multicore processors. For Java 11 and later there is a threaded implementation of p:for-each available, where different source documents can be processed in different system threads concurrently. More optimizations are possible and will come with future releases.

MorganaXProc-III comes in two editions:

MorganaXProc-IIIee (the Extended Edition)

is a full professional implementation of XProc 3.1 and all defined libraries (with one small exception). It comes with a perpetual license, including free updates for one year, and early access to critial bug fixes. More...

MorganaXProc-IIIse (the Standard Edition)

is an open source product, released under GPL 3.0. It implements all required and some optional features of the core language specification, the standard step library as well as some of the most used step libraries. More...