Я хочу получить два целых числа от пользователя, когда пользователь пытается применить быстрое исправление с помощью правил схематора и использовать значения в качестве переменных в операции замены.Но я получаю сообщение об ошибке «переменная не была объявлена»
У меня есть это правило схематора, которое находит первый пустой элемент выбора в шаге и предлагает пользователю применить быстрое исправление.Когда пользователь применяет быстрое исправление, появляется диалоговое окно и предлагает пользователю ввести два целых числа.Пользовательский ввод будет использоваться для вычисления диапазона элементов шага.
Правило схематрона
<sch:rule context="choice[1][not(normalize-space())]">
<sch:assert test="choice[1][not(normalize-space())]" sqf:fix='editchoice'>great
</sch:assert>
</sch:rule>
исправление
<sqf:fix id="editchoice">
<sqf:description>
<sqf:title>Enter the last step number</sqf:title>
</sqf:description>
<sqf:user-entry name="step1" type="xs:integer" >
<sqf:description>
<sqf:title>Enter the first step to be converted to choice</sqf:title>
</sqf:description>
</sqf:user-entry>
<sqf:user-entry name="laststep" type="xs:integer">
<sqf:description>
<sqf:title>Enter the last step to be converted</sqf:title>
</sqf:description>
</sqf:user-entry>
<sqf:replace match="./ancestor::steps/step[position()>$step1 and not(position()>=$laststep)]" target='choice' node-type='keep'></sqf:replace>
</sqf:fix>
Ожидаемый результат
$ step1 и $ laststep должны быть заменены значениями userinput.
фактический результат
Переменная step1 не была объявлена (или ее объявление не находится в области видимости)