我的Calabash xproc管道使用p:http-request来触发GET请求。服务器需要身份验证,因此我使用带有username / password / auth-method属性的c:request。我正在努力解决如何动态填充c:request的href属性的问题。
Calabash似乎不喜欢:
<c:request method="GET" href="{$href}" username="username" password="password" auth-method="basic" detailed="false"/>
这不是一个大惊喜,因为动态设置href对p:load也不起作用。但在后一种情况下,添加一个p:with-option子项会有所帮助。使用c:request,它没有。
所以这让我想知道是否还有另一种解决方案?
答案 0 :(得分:1)
XProc 1.0不支持属性值模板。但是,有一个可选但非常有用的p:template步骤(据我所知,Calabash支持) - Introduction部分完全涵盖了您的用例。
答案 1 :(得分:0)
嗯,我认为这里的解决方案是动态构造c:request元素+属性。
一个工作示例如下所示:
<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:inline>
<c:request method="GET" username="username" password="password" auth-method="basic"/>
</p:inline>
</p:input>
<p:output port="result"/>
<p:option name="area" select="'testvalue1'"/>
<p:option name="work" select="'testvalue2'"/>
<p:add-attribute match="/c:request" attribute-name="href">
<p:with-option name="attribute-value" select="concat('http://localhost:8181/exist/rest/db/OEP/code/test/testGet.xql?area=', $area, '&work=', $work)"/>
</p:add-attribute>
<p:http-request/>
</p:declare-step>
我仍然会对更好的方式感兴趣,因为这似乎不对: - (