我正在开展一个项目,通过问卷元数据在XForms中生成电子调查。虽然我已经能够轻松地创建XForms,但是符合XForms规范,我无法通过Orbeon运行表单。
我试图通过Orbeon运行的表单在这里:https://gist.github.com/3850705#file_dogsurvey.xhtml
我已经能够使用XSLTForms测试这个表单并且它运行得非常好,但是当我尝试通过Orbeon运行它时,没有任何问题文本出现,并且它甚至不存在于呈现的HTML源代码中对于用户,如下所示:https://gist.github.com/3850705#file_orbeon_source.html
所以,Orbeon正在对原始形式进行某种翻译(这是预期的),我猜测,基于他们的例子,它根据一些语言信息选择文本,但是,对于我的生活我无法弄清楚如何让xf:标签文本显示在表单上。
有人可以帮忙吗?
答案 0 :(得分:2)
您可能希望在运行表单时查看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的代码后,使用最新的代码,我也得到一个异常,看起来像一个bug,所以我填写了一个bug report,但你可能不会这样做您正在使用3.9版本。