gpt4 book ai didi

xquery - XForms:绑定(bind)的复杂计算

转载 作者:行者123 更新时间:2023-12-02 07:27:05 25 4
gpt4 key购买 nike

我正在寻找一种为绑定(bind)执行复杂计算的可能性。给出以下实例:

<root>
<appointments>
<appointment><date>2012-01-01</date></appointment>
<appointment><date>2012-01-03</date></appointment>
</appointments>
<weeks />
</root>

weeks 节点取决于 appointment 节点:

$weeks = 0
$week_begin = xs:date("1970-01-01")
for $appointment in //appointments/appoinment
if # Check if $appointment is in new week
$weeks = $weeks + 1
$week_begin = # Do some more calculationx

我的问题是我不知道在哪里“放置”这些计算。正如您所看到的,我们需要一个带有变量的循环,这些变量可以在循环周期之间存储一些信息。因此,我评估了以下选项:

  1. xforms:variable 与 xforms:repeat 结合使用 => 重复内的 xforms:variable 无法写入“外部”范围
  2. xforms:setvalue 与保存临时变量和 xforms:repeat 的额外实例相结合
  3. xforms:bind 带有计算属性 => xpath 中的 for 循环是可能的,但没有变量

有什么建议可以解决这个问题吗?谢谢!

最佳答案

您可以尝试在 Javascript 中实现在约会节点集发生更改时触发的计算。如果您使用 Orbeon Forms,则可以使用 xxforms:script扩大。 Orbeon wiki 有一个 example how to set an instance value based on a javascript calculation .

另一个解决方案是完全“外部化”计算并创建一个小的 Web 服务(XQuery?)来返回计算结果。您可以使用 xforms:submit 机制来提供该服务并访问其结果。

关于xquery - XForms:绑定(bind)的复杂计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9329012/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com