Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml 必须指定源文档或初始模板_Xml_Xslt 2.0_Calabash_Xproc - Fatal编程技术网

Xml 必须指定源文档或初始模板

Xml 必须指定源文档或初始模板,xml,xslt-2.0,calabash,xproc,Xml,Xslt 2.0,Calabash,Xproc,我正在尝试运行下面的xproc代码,其中涉及管道中的xslt步骤序列。但是,葫芦无法读取或获取源文档,尽管“href”链接已明确提及 氧气编辑器中报告了以下错误: E[Calabash XProc]“必须指定源文档或初始模板” 从控制台运行葫芦时出现以下错误: 2013年3月7日下午2:41:52 com.xmlclabash.util.DefaultXProcMessageListener错误严重: 错误:XD0011:XProc错误错误:XD0011 2013年5月07日下午2:41:52

我正在尝试运行下面的xproc代码,其中涉及管道中的xslt步骤序列。但是,葫芦无法读取或获取源文档,尽管“href”链接已明确提及

氧气编辑器中报告了以下错误:

E[Calabash XProc]“必须指定源文档或初始模板”

从控制台运行葫芦时出现以下错误:

2013年3月7日下午2:41:52 com.xmlclabash.util.DefaultXProcMessageListener错误严重: 错误:XD0011:XProc错误错误:XD0011 2013年5月07日下午2:41:52 com.xmlclabash.drivers.Main错误严重:如果 p:document元素引用的资源不存在, 无法访问,或者不是格式良好的XML文档。2013年3月7日 下午2:41:52 com.xmlclabash.drivers.Main严重错误:底层 异常:net.sf.saxon.s9api.saxonapie异常:报告了I/O错误 通过XML解析器处理C:stlConversionxprocstlxml.xpl: C:stlConversionx procstlxml.xpl(数据存储系统) 尼希特·芬登)

有人能帮我解决这个错误吗

这是我的xproc代码:





出现两条不同的错误消息

找不到文件..
后者只是表示葫芦无法读取.xpl文件本身。错误消息提到一个似乎缺少目录分隔符的文件路径。也许最初对葫芦的调用出了问题

这是我拼写错误.xpl名称时收到的错误消息:

D:\Projecten\Persoonlijk\XProc\stack8>calabash testt.xpl
mei 07, 2013 8:16:57 PM com.xmlcalabash.util.DefaultXProcMessageListener error
SEVERE: err:XD0011:XProc error err:XD0011
mei 07, 2013 8:16:57 PM com.xmlcalabash.drivers.Main error
SEVERE: It is a dynamic error if the resource referenced by a p:document element does not exist, cannot be accessed, or is not a well-formed XML document.
mei 07, 2013 8:16:57 PM com.xmlcalabash.drivers.Main error
SEVERE: Underlying exception: net.sf.saxon.s9api.SaxonApiException: I/O error reported by XML parser processing file:/D:/Projecten/Persoonlijk/XProc/stack8/test
t.xpl: D:\Projecten\Persoonlijk\XProc\stack8\testt.xpl (The system cannot find the file specified)
必须指定源文档
第一个信息有点误导。听起来好像您忘记了将输入绑定到输入端口,但事实并非如此。它实际上告诉您,
p:xslt
步骤之一没有接收任何输入,甚至没有接收到空文档节点

我能够通过在任何
p:xslt
步骤之前添加
p:sink
p:identity
来重现错误,如下所示:

<p:declare-step name="main" xmlns:p="http://www.w3.org/ns/xproc"
  xmlns:c="http://www.w3.org/ns/xproc-step" version="1.0">

    <p:input port="source" primary="true" sequence="true">
        <p:document href="temp/a.xml"/>
    </p:input>
    <p:input port="schema" sequence="true"/>
    <p:input port="stylesheet" sequence="true"/>
    <p:input port="parameters" sequence="true" kind="parameter"/>

    <p:output port="result" sequence="true">  
        <p:pipe step="pre-run" port="result"/>
        <p:pipe step="normalize-stl-xml" port="result"/>
        <p:pipe step="tf-transform" port="result"/>
        <p:pipe step="transformARDOnline" port="result"/>
        <p:pipe step="filterUnusedStyleLayout" port="result"/>
    </p:output>

    <p:xslt name="pre-run">
        <p:input port="stylesheet">  
            <p:document href="xslt/test.xsl"/> 
        </p:input>  
    </p:xslt>

    <p:sink/>
    <p:identity>
        <p:input port="source">
            <p:empty/>
        </p:input>
    </p:identity>

    <p:xslt name="normalize-stl-xml">
        <p:input port="stylesheet">  
            <p:document href="xslt/normalize_stl_xml.xsl"/> 
        </p:input>  
    </p:xslt>

    <p:xslt name="tf-transform">
        <p:input port="stylesheet">  
            <p:document href="xslt/tf_test_transform.xsl"/> 
        </p:input>  
    </p:xslt>

    <p:xslt name="transformARDOnline">
        <p:input port="stylesheet">  
            <p:document href="xslt/transformARDOnline.xslt"/> 
        </p:input>  
    </p:xslt>

    <p:xslt name="filterUnusedStyleLayout">
        <p:input port="stylesheet">  
            <p:document href="xslt/filterUnusedStyleLayout.xslt"/> 
        </p:input>  
    </p:xslt>

    <p:store href="ebu-tt_ard_online.xml" media-type="text/xml"/>

</p:declare-step>

我还添加了您在评论中提到的输入声明。我确实将源输入更改为主输入。主输入和输出是自动绑定的,所以您可以省略所有输入源声明,正如您在上面的代码中看到的那样。类型参数的输入也是如此,它也是自动绑定的。通过省略它们,任何命令行参数都会自动传递给
p:xslt

这不是一个确切的答案,但希望它能帮助你更接近这个问题。就我所知,在没有实际输入和xslt的情况下,您的代码在葫芦0.9.40和1.0.9-94中运行良好


谢谢你的答复。我确实检查了我是否像你建议的那样拼错了文件名,但我使用该命令的方式没有任何错误。不过,我确实尝试将葫芦可执行文件和.xpl文件放在同一个文件夹中。然而,这一次,我得到了一个不同的错误(当我从oXygen编辑器GUI运行它时也显示了这个错误)。$java com.xmlclabash.drivers.Main stlxml.xpl Mai 072013年4:47:08 PM com.xmlclabash.util.DefaultXProcMessageListener错误严重:必须输入源文档或初始模板specified@user2358380您没有声明任何输入,是吗?你用的是哪个版本的葫芦?我可能不是最新的版本,所以这也可以解释行为上的差异。.葫芦-1.0.9-94是我正在使用的版本。在上面的代码中,我忽略了粘贴输入减速,但下面是我实际声明输入的方式@gops啊,你在申报输入。然后必须在命令行上指定输入。我根本没有声明输入,因为您是通过
p:document
显式加载输入的。也许这是最大的区别。如果您注释掉所有顶级输入,会发生什么情况?请再次使用Thx进行回复。我确实试图从命令行提供输入源,但仍然得到了错误。然而,这一次,我尝试注释掉所有顶级输入(保持输出不变),但仍然得到相同的错误“必须指定源文档或初始模板”。
<p:declare-step name="main" xmlns:p="http://www.w3.org/ns/xproc"
  xmlns:c="http://www.w3.org/ns/xproc-step" version="1.0">

    <p:input port="source" primary="true" sequence="true">
        <p:document href="temp/a.xml"/>
    </p:input>
    <p:input port="schema" sequence="true"/>
    <p:input port="stylesheet" sequence="true"/>
    <p:input port="parameters" sequence="true" kind="parameter"/>

    <p:output port="result" sequence="true">  
        <p:pipe step="pre-run" port="result"/>
        <p:pipe step="normalize-stl-xml" port="result"/>
        <p:pipe step="tf-transform" port="result"/>
        <p:pipe step="transformARDOnline" port="result"/>
        <p:pipe step="filterUnusedStyleLayout" port="result"/>
    </p:output>

    <p:xslt name="pre-run">
        <p:input port="stylesheet">  
            <p:document href="xslt/test.xsl"/> 
        </p:input>  
    </p:xslt>

    <p:sink/>
    <p:identity>
        <p:input port="source">
            <p:empty/>
        </p:input>
    </p:identity>

    <p:xslt name="normalize-stl-xml">
        <p:input port="stylesheet">  
            <p:document href="xslt/normalize_stl_xml.xsl"/> 
        </p:input>  
    </p:xslt>

    <p:xslt name="tf-transform">
        <p:input port="stylesheet">  
            <p:document href="xslt/tf_test_transform.xsl"/> 
        </p:input>  
    </p:xslt>

    <p:xslt name="transformARDOnline">
        <p:input port="stylesheet">  
            <p:document href="xslt/transformARDOnline.xslt"/> 
        </p:input>  
    </p:xslt>

    <p:xslt name="filterUnusedStyleLayout">
        <p:input port="stylesheet">  
            <p:document href="xslt/filterUnusedStyleLayout.xslt"/> 
        </p:input>  
    </p:xslt>

    <p:store href="ebu-tt_ard_online.xml" media-type="text/xml"/>

</p:declare-step>