Я ищу возможность выполнять сложные расчеты для привязки. Дан следующий пример:
<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
Моя проблема в том, что я не знаю, куда «поместить» эти расчеты. Как видите, нам нужен цикл с переменными, которые могут хранить некоторую информацию между циклами цикла. Поэтому я оценил следующие варианты:
- xforms:variable в сочетании с xforms:repeat => xforms:variable внутри повтора не может записывать во «внешнюю» область
- xforms:setvalue в сочетании с дополнительным экземпляром, который содержит временные переменные и xforms:repeat
- xforms:bind с атрибутом calculate => циклы for в xpath возможны, но не переменные
Любые советы, как подойти к этой проблеме? Спасибо!