0

我正在使用 MorganaXProc-IIIse (XPROC 3.0) 来执行以下代码:

<p:declare-step xmlns:p="http://www.w3.org/ns/xproc" version="3.0">
    <p:output port="result"/>
    <p:xslt name="xml-author_list">
        <p:with-input port="source">
            <p:document href="content.xml"/>
        </p:with-input>
        <p:with-input port="stylesheet">
            <p:document href="test.xsl"/>
        </p:with-input>
    </p:xslt>
</p:declare-step>

但是,我收到以下错误消息:

Check your configuration: Cannot initialize XSLTConnector with 'com.xml_project.morganaxproc3.saxon10connector.Saxon10XSLTConnector'.    
<c:errors xmlns:c="http://www.w3.org/ns/xproc-step">
       <c:error code="err:XC0038"
                name="xml-author_list"
                type="p:xslt"
                href="file:///Users/bob/Dev/Workspace/IdeaProjects/test/test/test.xpl"
                line="4"
                column="36"
                xmlns:p="http://www.w3.org/ns/xproc"
                xmlns:err="http://www.w3.org/ns/xproc-error">
          <message>Requested XSLT version '3.0' is not supported by choosen XSLTConnector or XSLTConnector configuration error.</message>
       </c:error>
    </c:errors>

所以我尝试将 XSLTConnector 更改为 Saxon10。Saxon10Connector 已经在 Morgana 的 lib 目录中。这是我的 config.xml:

<morgana-config xmlns="http://www.xml-project.com/morganaxproc">
    <path_to_iso_skeleton_schematron_1>ISO_SKELETON_SCHEMATRON_1</path_to_iso_skeleton_schematron_1>
    <path_to_iso_skeleton_schematron_2>ISO_SKELETON_SCHEMATRON_2</path_to_iso_skeleton_schematron_2>
    <path_to_SchXSLT_1>schxslt-1.4.5-sources/xslt/1.0</path_to_SchXSLT_1>
    <path_to_SchXSLT_2>schxslt-1.4.5-sources/xslt/2.0</path_to_SchXSLT_2>
    <XSLTValidationMode>STRICT</XSLTValidationMode>
    <xslt-connector>Saxon10</xslt-connector>
</morgana-config>

然后我执行:

sh Morgana.sh /Users/bob/Dev/Workspace/IdeaProjects/test/test/test.xpl -xslt-connector=saxon10 -xquery-connector=saxon10 -indent-errors -debug

但错误仍然发生。我找不到有关哪个 XSLTConnector 支持 XSL-Stylesheet 版本 3.0 的任何信息

任何提示都非常感谢。

4

1 回答 1

1

如果您阅读文档,它会说:

Saxon 实现的当前搜索顺序是 saxon9ee.jar、saxon9pe.jar、saxon9he.jar、saxon-ee-10.0.jar、saxon-pe-10.0.jar、saxon-he-10.0.jar、saxon-ee-10.1 .jar、saxon-pe-10.1.jar 和 saxon-he-10.1.jar。MorganaXProc-IIIse 将使用此搜索顺序找到的第一个 Saxon 版本。

但由于 Saxon 10 的推荐 Saxon 版本是 Saxon 10.3:

建议与 Saxon 10.3 一起使用

可以假设它适用于 10.3 以及任何新版本。

但是,对于 10.3 和 10.6,我仍然遇到同样的错误。我假设 lib 文件夹中可能有 Saxon 9.x 版本,因此由于搜索顺序而选择了错误的版本。但事实并非如此。

当我像搜索顺序中提到的那样添加 10.0 时,它可以工作。

于 2021-10-12T10:45:31.070 回答