是否可以将通用XForm文档导入Orbeon?

时间:2012-10-08 04:27:15

标签: orbeon xforms xsltforms

我正在开展一个项目,通过问卷元数据在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:标签文本显示在表单上。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:2)

您可能希望在运行表单时查看orbeon.log。我看到了以下两个问题:

  1. 我正在尝试在此处运行此操作,因为像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)

  2. 更改上面#1的代码后,使用最新的代码,我也得到一个异常,看起来像一个bug,所以我填写了一个bug report,但你可能不会这样做您正在使用3.9版本。