我給低於我XPROC管道的目標是把源XML文檔中,運行2 XSLT與<p:xslt>
步驟變換,然後是第二<p:xslt>
到喂入後,該輸出XML在<p:http-request>
步驟<c:body>
:飼餵<p:xslt>輸出到HTTP PUT請求的<c:body>在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" primary="true"/>
<p:output port="result" primary="true"/>
<p:serialization port="result"
indent="false"
method="xml"
encoding="utf-8"
omit-xml-declaration="false"
doctype-system="myDTD.dtd"
doctype-public="-//DOCTYPE-HERE"/>
<p:xslt>
<p:input port="stylesheet">
<p:document href="XSLT-1.xslt"/>
</p:input>
</p:xslt>
<p:xslt>
<p:input port="stylesheet">
<p:document href="XSLT-2.xslt"/>
</p:input>
</p:xslt>
<p:http-request omit-xml-declaration="false"
encoding="UTF-8">
<p:input port="source">
<p:inline>
<c:request href="http://localhost:80/myRESTserver/dburi/myDOC.xml"
auth-method="basic"
username="user"
password="admin"
method="put">
<c:body content-type="text/xml" >
</c:body>
</c:request>
</p:inline>
</p:input>
</p:http-request>
有沒有辦法來實現這一目標?當我嘗試按原樣執行此代碼時,首先調用<p:http-request>
(將空XML文件抽取到數據庫中)。
是從P:http-request中取出並放在p:insert步驟內的C:請求?現在Xproc說p:insert不能包含c:request – Laterade 2015-04-02 20:50:05
是的,'c:request'是從'p:http-request'中取出的。你得到錯誤是因爲我忘記將'c:request'包裝在'p:inline'中 - 我只是在我的文章中修復了這個錯誤。 – 2015-04-13 08:16:47
@VojtěchToman我有一個類似的用例(但有一個'http-request'步驟,接着是'xquery'步驟,然後是另一個'http-request')。按照建議,當我嘗試添加'p:insert'步驟時,出現一個錯誤(在XML Calabash中):「無法評估表達式:前綴c尚未聲明。」應在哪裏聲明前綴? – tat 2015-10-19 12:11:25