我还没试过。
我们可以在管道中的其他任何地方更新 p:variable 的值,即在某个步骤开始时的有效声明之后?如果不是那为什么?如果我真的需要这样做或至少模拟它,那么最好的方法是什么。
我将您的问题转发到 xproc-dev 邮件列表。显然,该建议似乎自相矛盾。第 5.7 节 ( http://www.w3.org/TR/xproc/#variables-options-parameters ) 非常明确地指出,在特定条件下应该允许阴影。但是第 3.2 节(http://www.w3.org/TR/xproc/#scoping)说在范围内重用相同的变量名是错误的。共识是,这原则上应该有效:
<p:variable name="myvar" select="1"/>
<p:group>
<p:variable name="myvar" select="2"/>
然而,XMLCalabash (0.9.40) 对此感到窒息。不过,您可以尝试 Calumet 或其他处理器。