Можно ли импортировать универсальный документ XForm в Orbeon?
Я работаю над проектом по созданию электронных опросов в XForms из метаданных вопросника. Несмотря на то, что мне удалось создать XForms достаточно просто, но они соответствуют спецификации XForms, у меня возникли проблемы с запуском формы через Orbeon.
Форма, которую я пытаюсь запустить через Orbeon, находится здесь: https://gist.github.com/3850705
Я смог протестировать эту форму, используя XSLTForms, и она отлично работает, однако, когда я пытаюсь запустить ее через Orbeon, текст вопроса не появляется, и он даже не существует в исходном HTML-коде, который предоставляется пользователю., как показано здесь: https://gist.github.com/3850705
Итак, Orbeon делает какой-то перевод оригинальной формы (что и следовало ожидать), и я предполагаю, основываясь на их примерах, что его выбор текста на основе некоторой языковой информации, однако, для моей жизни я могу ". t выяснить, как получить текст метки xf: для отображения в форме.
Кто-нибудь может помочь?
1 ответ
Возможно, вы захотите взглянуть на orbeon.log
как вы запустите форму. Я видел следующие две проблемы:
Поскольку я пытаюсь запустить это здесь, я сначала получаю ошибки из-за
xf:bind
как этот:<xf:bind id="bindThen-DogSurvey_IF_2" nodeset="//rml:if[@id='DogSurvey_IF_2']/rml:then" relevant="//rml:response[@id='DogSurvey_QC_30'] = '1'" readonly="not(//rml:response[@id='DogSurvey_QC_30'] = '1')"/>
Если элемент не содержит числа, например, потому что он пустой, это выражение не сможет быть оценено, поскольку движок XPath пытается преобразовать пустую строку в число. Так что, если вы не абсолютно уверены, что значение всегда будет числом (что здесь не так), безопаснее написать
… = '1'
, таким образом, делая сравнение строк. Если вы действительно хотите сделать сравнение между целыми числами, вы можете написать//rml:response[@id='DogSurvey_QC_30']/(. castable as xs:integer and . = 1)
,После изменения кода для #1 выше, с последним кодом, я также получаю исключение, которое похоже на ошибку, поэтому я заполнил отчет об ошибке, но вы можете не столкнуться с этим, если вы используете версию 3.9.