Orbeon Form Builder:使用XPath定义InputField的计算值

时间:2012-12-12 20:38:15

标签: xml xslt xpath orbeon xforms

我正在使用Orbeon Form Builder中的输入字段填充文本“null”,当formdata将作为xml发送到服务时,如果用户没有在Form Runner中填充它。假设我必须使用XPath表达式定义计算值字段。我该怎么做? 因为我不想在结果xml数据文件中有空元素。

1 个答案:

答案 0 :(得分:0)

在XForms中提供'null'作为默认值的最简单方法是在您加载的文档实例中将'null'写为有问题的元素或属性的值。如果您希望元素shoesizesockscolor默认为null,请相应地编写XForms实例:

<xforms:instance id="main" xmlns="">
  <mydata>
    <name></name>
    <age></age>
    <shoesize>null</shoesize>
    <sockscolor>null</sockscolor>
  </mydata>
</xforms:instance>

如果从外部文档加载文档实例,则需要执行更复杂的操作,例如在用户单击提交按钮时将shoeize和sockscolor的值设置为操作的一部分。类似的东西:

<xforms:trigger>
  <xforms:label>Submit</xforms:label>
  <xforms:action ev:event="DOMActivate">
    <xforms:setvalue ref="shoesize"
                     if=".=''"
                     value="'null'"/>
    <xforms:setvalue ref="sockscolor"
                     if=".=''"
                     value="'null'"/>
    <xforms:send submission="go"/>
  </xforms:action>
</xforms:trigger>

这只是通用的XForms,并没有利用FormsRunner可能使这更容易的任何特殊功能。