xproc: p:xquery 有多个输入文档

xproc: p:xquery with multiple input documents

根据XProc: W3C Recommendation p:xquery 只得到一个输入文档和参数(只能是原子的,对吧?)

<p:declare-step type="p:xquery">
 <p:input port="source" sequence="true" primary="true"/>
 <p:input port="query"/>
 <p:input port="parameters" kind="parameter"/>
 <p:output port="result" sequence="true"/>
</p:declare-step>

如果我的查询有多个输入文档(来自前面的步骤),我真的必须先存储它们并在查询中加载它们吗?

不,正如您引用的语法描述清楚表明的那样,'source' 端口有 sequence="true",这意味着该步骤可能会在源端口上接收一系列文档,而不仅仅是一个。

所以不,您真的不必存储它们然后将它们加载到查询中;只需将它们作为文档序列输入 p:xquery 步骤的源端口即可。