1

我的目标是通过 XProc 访问位于 FTP 服务器上的 XML 文档。这个特定的 FTP 服务器需要身份验证。

我在 Java 8 上使用最新版本的 Calabash (1.1.6-96)。

当不需要身份验证时,以下 XProc 可以完美运行:

<p:declare-step xmlns:p="http://www.w3.org/ns/xproc"
xmlns:c="http://www.w3.org/ns/xproc-step" version="1.0">
    <p:input port="source">
    <p:document href="ftp://ftp.hq.nasa.gov/index.html"/>
    </p:input>
    <p:output port="result"/>
    <p:identity/>
</p:declare-step>

但是,如果您尝试访问需要身份验证的 FTP 服务器:

<p:declare-step xmlns:p="http://www.w3.org/ns/xproc"
xmlns:c="http://www.w3.org/ns/xproc-step" version="1.0">
    <p:input port="source">
        <p:document href="ftp://user:passwordd@ftp.example.org/example.xml"/>
    </p:input>
    <p:output port="result"/>
    <p:identity/>
 </p:declare-step>

Calabash 将返回错误:

错误:如果 ap:document 元素引用的资源不存在、无法访问或不是格式良好的 XML 文档,则为动态错误。

表示它无法访问该文档。

奇怪的是,我安装了旧版本的 Oxygen (16.0),它带有旧版本的 Calabash (1.0.*),而第二个使用身份验证的 XProc 运行良好。因此,Calabash 内部要么发生了一些变化,要么与旧的 Oxygen/Calabash 配置相关的其他一些东西使它工作。

我也对访问此文件的替代方法持开放态度。我已经尝试换掉了<p:document><p:http-request>但这并没有成功。

4

0 回答 0