2013-05-07 20 views
1

我試圖運行以下代碼xproc代碼,其中涉及流水線中的xslt步驟的序列。然而,雖然'href'鏈接被明確提及,但是Calabash無法閱讀或獲取源文檔。源文檔或初始模板必須指定

以下錯誤在氧編輯報道:

E [葫蘆XPROC]「要麼源文檔或初始模板必須指定」運行蠡時被看作

以下錯誤從控制檯:

麥07,2013下午2點41分52秒 com.xmlcalabash.util.DefaultXProcMessageListener錯誤嚴重: 錯誤:XD0011:XPROC誤差err:XD0011麥0 7,2013 2:41:52 PM com.xmlcalabash.drivers.Main error SEVERE:如果 由ap:document元素引用的資源不存在,那麼是一個動態錯誤, 不能被訪問,形成了XML文檔。 Mai 07,2013 2:41:52 PM com.xmlcalabash.drivers.Main error SEVERE:潛在的 異常:net.sf.saxon.s9api.SaxonApiException:由XML解析器處理C:stlConversionxprocstlxml導致的 的I/O錯誤。 XPL: C:stlConversionx procstlxml.xpl(DAS系統卡恩死angegebene Datei nicht芬登)

能有人幫我這個錯誤?

繼承人我XPROC代碼:



<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="source"> 
     <p:document href="file:/C:/stlConversion/temp/a.xml"/> 
    </p:input> 
    <p:input port="stylesheet"> 
     <p:document href="file:/C:/stlConversion/xslt/test.xsl"/> 
    </p:input> 
    <p:input port="parameters"> 
     <p:empty/> 
    </p:input> 
</p:xslt> 

<p:xslt name="normalize-stl-xml"> 
    <p:input port="source"> 
     <p:pipe step="pre-run" port="result"/> 
    </p:input> 
    <p:input port="stylesheet"> 
     <p:document href="file:/C:/stlConversion/xslt/normalize_stl_xml.xsl"/> 
    </p:input> 
    <p:input port="parameters"> 
     <p:empty/> 
    </p:input> 
</p:xslt> 

<p:xslt name="tf-transform"> 
    <p:input port="source"> 
     <p:pipe step="normalize-stl-xml" port="result"/> 
    </p:input> 
    <p:input port="stylesheet"> 
     <p:document href="file:/C:/stlConversion/xslt/tf_test_transform.xsl"/> 
    </p:input> 
    <p:input port="parameters"> 
     <p:empty/> 
    </p:input> 
</p:xslt> 

<p:xslt name="transformARDOnline"> 
    <p:input port="source"> 
     <p:pipe step="tf-transform" port="result"/> 
    </p:input> 
    <p:input port="stylesheet"> 
     <p:document href="file:/C:/stlConversion/xslt/transformARDOnline.xslt"/> 
    </p:input> 
    <p:input port="parameters"> 
     <p:empty/> 
    </p:input> 
</p:xslt> 

<p:xslt name="filterUnusedStyleLayout"> 
    <p:input port="source"> 
     <p:pipe step="transformARDOnline" port="result"/> 
    </p:input> 
    <p:input port="stylesheet"> 
     <p:document href="file:/C:/stlConversion/xslt/filterUnusedStyleLayout.xslt"/> 
    </p:input> 
    <p:input port="parameters"> 
     <p:empty/> 
    </p:input> 
</p:xslt> 

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

回答

0

有兩種不同的錯誤信息發生..

找不到文件..
後者只是表示,葫蘆是無法讀取。XPL文件本身。該錯誤消息提到了似乎缺少目錄分隔符的文件路徑。也許最初打電話給Calabash時出了問題。

這是錯誤消息我收到的時候我missspell的。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:sinkp: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

不是一個確切的答案,但希望它可以幫助你更接近問題。就我的觀察結果而言,你的代碼在Calabash 0.9.40和1.0.9-94兩個版本上運行良好,就我所知,沒有實際的輸入和xslt。

HTH!

+0

Thx回覆。我確實檢查了是否像您提示的那樣拼錯了文件名,但是我使用該命令的方式沒有任何問題。然而,我嘗試將兩個calabash可執行文件和我的.xpl文件放在同一個文件夾中。但是這一次,我得到了一個不同的錯誤(當我從oXygen編輯器GUI運行它時也顯示出來)。 $ java的com.xmlcalabash.drivers.Main stlxml.xpl 麥07,2013下午4時47分08秒com.xmlcalabash.util.DefaultXProcMessageListener錯誤 重度:無論是源文件或初始模板必須指定 – gops 2013-05-10 09:38:03

+0

@ user2358380你沒有宣佈任何投入是你嗎?你使用哪種版本的葫蘆?我可能不是最近的一個,所以可以解釋行爲上的差異。 – grtjn 2013-05-10 17:24:40

+0

calabash-1.0.9-94是我使用的版本。那麼,在上面的代碼中,我錯過了粘貼輸入減速的過程,但這裏是我如何實際聲明輸入。 gops 2013-05-13 08:36:43

相關問題