What is new in MorganaXProc-IIIse rel. 0.9.3.7?
MorganaXProc-IIIse 0.9.3.7-beta was released on June 27th, 2020. A detailed list of all changes can be found in file "changelog.txt" provided with the distribution. Here are the highlights changed since the last public release in May.
Adaption to changes in the XProc 3.0 specifications
In the last weeks we made some minor changes to the last call of the XProc 3.0 specs, both the core specs and the standard step library. Rel 0.9.3.7 implements all of these changes as of 2020-06-28. Here is a list of what has changed:
- If you run p:xslt with version="3.0" the new behaviour is this: If you have a single document on port "source" and option "global-context-item" is not bound, then the document will become the binding for "global-context-item". To disable this behavior just bind the empty sequence to "global-context-item".
- For ZIP archives handled with p:archive a missing resources named on the manifest document does no longer raise an error, if you command is "update" or "freshen". But it is still an error, if you use command "create" and a resource named in the manifest document does not exist, cannot be accessed, etc.
- p:xslt has a new option "populate-default-collection" relevant for XSLT versions 2.0 and 3.0. This option is true by default and tell the processor to use the document sequence on p:xslt's source port as default collection when evaluating the XSLT stylesheet. If you use "false" on this option, the default collection will be undefined.
- The behavior of construction the Content-Type header for p:http-request with a single document on source port has been improved: If the document has a serialization document property with a value for "encoding", this value is now automatically added to the content-type document property to create the Content-Type header of an HTTP request.
- Steps p:http-request and p:load (and as a consequence also p:with-input/p:document) now raise an error for a value of "content-type" or "overide-content-type" which is not a valid mime type. This makes sure that now a defective value for "content-type" etc. is now treated consistently over all steps.
- The signature of p:load's output port "result" what changed to sequence="false".
Improved usability of MorganaXProc-IIIse
- Serialization of nested maps has improved for better readability.
- Files with extension ".md" are now recognized as text document with content-type "text/markdown".
- A lot of error messages were improved to provide better information about what has gone wrong. Thanks for every user having complaint about non-informative error message in the previous versions.
- The catalog resolver is now also used as a DTD resolver.
- Improved handling of HTML sources: Validator.nu's HTMLParser is now used (was TagSoup before) to provide better result for parsing HTML documents to an XDM document.
Improvements on the command line interface
The command line interface was improved for handling binary documents and sequences of documents appearing as a pipeline result:
- If a binary document appears as result of a pipeline and should be displayed on the console output, by default now only document's content-type is written to standard output. Using switch "-dump-binary" (on the command line or in the configuration file) replace this behavior by actually dumping the document's bytes to standard output.
-output:portname=path-or-uri can now be used to write binary result documents to the respective target.
- For sequence of documents appearing on a result port, bound with
-output on the command line, you can now control, whether all document are written to a single destination or a sequence of destination files is generated. If switch
-split-sequence is used, the command line interface will create a new file for each document appearing on the respective port using the
path-or-uri value as a blueprint for the filename: If the path given contains a "." like in "text.txt", then MorganaXProc-IIIse will insert a number (starting from 1) before the last "." while storing the document sequence. Therefor "text-1.txt" and "text-2.txt" will be created for a sequence with two documents. If there is no "." in the path, the number schema is just added to the given path.
- If a sequence of binary (other) documents appears on a port bound with
-output and the split-sequence feature is not used, the file with the given path will only contain the last document appearing on the port.
For a complete guide to using MorganaXProc-IIIse from the command line, please see the manual.
There were lots and lots of bug fixes all over the implementation. The main focus of improvement were serialization, encoding for non UTF-8 environments, and handling of ZIP archives.
Big thanks to everyone pointing out bugs, especially to Geert, Erik, and Martin.
Early adopters program is extended until the end of 2020.
Due to customer request, <xml-project /> extends its early adopters program until 2020-12-31 to support usage of MorganaXProc-IIIse in projects. As there is still vacancy, contact us to get a quote for supporting your project.