Third Party Software Used By MorganaXProc

The software used by MorganaXProc not developed by <xml-project /> falls into four categories:

Third party software embedded into the source code of MorganaXProc

Trang, Copyright © 2002, 2003, 2008 Thai Open Source Software Center Ltd All rights reserved

Classes from the packages "com.thaiopensource.datatype.xsd.regex.java" and "com.thaiopensource.util" are used in MorganaXProc to implement regular expression in XPath. The classes

  • Categories.java (com.thaiopensource.datatype.xsd.regex.java)
  • NamingExceptions.java (com.thaiopensource.datatype.xsd.regex.java)
  • RegexFeatures.java (com.thaiopensource.datatype.xsd.regex.java)
  • Translator.java (com.thaiopensource.datatype.xsd.regex.java)
  • Localizer.java (com.thaiopensource.util) and
  • Utf16.java (com.thaiopensource.util)

have been copied into package com.xml_project.morganaxproc.xpath.regex. The code in Translator.java was apdapted to implement the modifications of the syntax defined in XML Schema Part 2: Datatypes Second Edition" by "XQuery 1.0 and XPath 2.0 Functions and Operators (Second Edition).

Original license of Trang:

Copyright (c) 2002, 2003, 2008 Thai Open Source Software Center Ltd
All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

Neither the name of the Thai Open Source Software Center Ltd nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Third party software needed on the classpath for standard operations of MorganaXProc

XOM™ the tree-based API for processing XML with Java, Copyright 2004, 2005, 2009, 2010 Elliotte Rusty Harold.

Almost all xml related operations in MorganaXProc are based on XOM™, so MorganaXProc can not run without XOM™ on the class path. The version used is 1.2.10. The file xom-1.2.10.jar is found in folder "MorganaXProc_lib". XOM™ is released under GNU LESSER GENERAL PUBLIC LICENSE 2.1 and used in accordance with the provisions stated in the License. For third party software used by XOM™ and the related licences, please see XOM™'s homepage.

Third party software used in the implementation of XProc steps and features, which may be omitted, if those steps/features are not used in a pipeline

Resource Management

Apache™ XML Commons Resolver, Copyright © 2006 The Apache Software Foundation.

Since MorganaXProc 0.95-10 the Apache™ XML Commons Resolver is used as resource management in XProcFilesystem. The version used is 1.2. In order to resolve resources using the XML Catalog system, you need to have the file resolver.jar on your class path. This you do not use a catalog resolving system, you can remove this file from the class path and MorganXProc's runtime library. This file is found in folder "MorganaXProc_lib". XML Commons Resolver is released under Apache License , Version 2.0 and used compliance with the License.

p:http-request

Apache™ Commons HttpClient™, Copyright © 2005-2016 The Apache Software Foundation.

The Apache™ libraries are used to implement advanced http(s) related operations in MorganaXProc. The version used is 4.5.2. In order for MorganaXProc to perform advanced http operations, you will have to have the following files on your class path: commons-codec-1.9.jarcommons-logging-1.2.jarhttpclient-4.5.2.jar and httpcore-4.4.4.jar. These files are found in folder "MorganaXProc_lib". Commons HttpClient™ software is released under Apache License , Version 2.0 and used compliance with the License.

JavaMail API, the JavaMail API reference implementation, Copyright © 2007-2013 Oracle.

JavaMail API is used to deal with multipart requests and responses in http(s) operations. The version used is 1.5.1. The file javax.mail.jar is found in folder "MorganaXProc_lib". JavaMail API is licensed under the Common Development and Distribution License (CDDL) v1.1 and GNU General Public License (GPL) v2 with Classpath Exception and used in accordance with this regulation.

Note:MorganaXProc's standard distribution contains this software because we believe you will want to use <p:http-request> as specified in the XProc recommendation. However if, for some reason, you do not need <p:http-request> in your pipelines or do not want to use this third party software, you can remove the jar-file safely from folder "MorganaXProc_lib". As stated in the implementation report, MorganaXProc is able to do a rudimentary form of <p:http-request>. Just method "get" is supported then and attribute "detailed" must be false.

p:validate-with-relax-ng

To run an XProc pipeline containing <p:validate-with-relax-ng> with MorganaXProc, you will need Jing. A RELAX NG validator in Java Copyright © 2001, 2002, 2003, 2008 Thai Open Source Software Center Ltd. This software is not included in MorganaXProc's distribution. It comes with a BSD style licence. If you need <p:validate-with-relax-ng>, download it from its homepage, rename the unzipped folder to "jing" and put it into folder "Extensions" in your folder "MorganaXProc".

p:validate-with-schematron

To successfully run pipelines with <p:validate-with-schematron> you will need either the package "iso-schematron-xslt1.zip" or "iso-schematron-xslt2.zip" (XSLT implementation by Rick Jelliffe with assistance from members of Schematron-love-in maillist) from the Schematron project. This software package is released under an MIT License. Please unzip the downloaded file and put the result folder "iso-schematron-xslt1" or "iso-schematron-xslt2" into folder "Extensions" in your folder "MorganaXProc". Schematron validation using the package for XSLT 2.0 is supported since MorganaXProc 0.95-10. Please note that you need to selected an XSLT-processor capable running XSLT 2.0 (or higher).

p:xsl-formatter

MorganaXProc's implementation of <p:xsl-formatter> can be used with software developed by The Apache™ FOP Project (either version 1.1 or version 2.2.). This software package is release under Apache Licence, version 2.0. If you need to build XProc pipelines with <p:xsl-formatter> and want to use Apache™ FOP, please see documentation on Enhancing MorganaXProc With Third Party Software for a detailed description of the installation procedure. Other implementations of MorganaXProc's FOConnector might be available, but the standard distribution contains support only for Apache™ FOP.

p:unescape-markup

As noted in XProc: An XML Pipeline Language, implementations of <p:unescape-markup> may use different xml parsers for content-types other than "application/xml". MorganaXProc supports <p:unescape-markup> with content-type = "text/html", provided a suitable parser is set in the configuration document (with HTMLParserClass) and the related Java class is found in folder "Extensions". MorganaXProc has been tested with John Cowan TagSoup 1.2.1 which you can download from the TagSoup home page, but any other SAX-compliant parser written in Java should work as well. TagSoup is release under Apache License, Version 2.0.

p:xslt

Compiled versions of Saxon's packages "net.sf.saxon.option.xom", Copyright 2014/2015 by Saxonica Ltd.

MorganaXProc comes with "saxon96-xom.jar" and "saxon97-xom.jar" in folder "Extensions" to support the use of Saxon-HE (see below). The two packages are compiled from the unchanged sources in "net.sf.saxon.option.xom" from Saxon 9.6.0.9 distribution of SaxonHE and the Saxon 9.7.0.8 distribution of SaxonHE.

The sources are released under Mozilla Public License, v. 2.0 ("Incompatible With Secondary Licenses").

As explained in Saxon's documentation these packages are not included in Saxon-HE, but must be compiled separately from the sources. As a convenience for users of MorganaXProc, the compiled versions are supplied in folder "Extensions".

For Saxon-HE 9.6.x file "saxon96-xom.jar" is required, Saxon-HE 9.7.x needs "saxon97-xom.jar" in folder "Extensions". If you are not planning to use MorganaXProc with Saxon-HE as alternative to the default XSLT-processor, you can delete both files from folder "Extensions".

Third party software, which could be used as an alternative implementation to the standard implementation used be MorganaXProc

MorganaXProc runs <p:xslt> and <p:xquery> out of the box but also provides the facility to use other XSLT or XQuery processors than those used in the standard implementation. As a convenience to users, the package "AddOns.jar" in folder "Extensions" provides adapter classes for the following XSLT or XQuery processors:

  • Xalan-Java by The Apache XML Project can be used as an alternative XSLT processor for XSLT version 1.0. Xalan-Java is released under Apache Software License, version 2.0.
  • Saxon-HE, the Home Edition version of The Saxon XSLT and XQuery processor, developed by Saxonica can be used as an alternative XSLT processor allowing transformations with XSLT and XSLT 2.0 as well as an alternative XQuery processor. Saxon HE is available under Mozilla Public License version 2.0. Please note that at the moment support is only supplied for Saxon-HE. Using Saxon PE or Saxon EE is not tested and therefore not supported.
  • MXQuery. A lightweight, full-featured XQuery Engine can be used as an alternative XQuery processor. MXQuery is available under Apache 2.0 licence.
  • BaseX. The XML Database can also be used as an alternative XQuery processor. BaseX is available under the terms of the BSD License.

Please see the document on Enhancing MorganaXProc With Third Party Software for further details of this feature.