我似乎在让xform
显示复选框时出现问题 - 而是显示文本区域。我所有其他项目都正常工作,我似乎无法让这一项工作。
这是我模型中的代码:
<takeMoneyOff type="xs:boolean"/>
// close the my structure
// close the instance
<xf:bind id="takeMoneyOff" nodeset="/xForm/takeMoneyOff"/>
// close the model
这是所有用于显示的项目是:
<xf:input ref="takeMoneyOff" class="takeMoneyOffClass">
<xf:label>Take Money Off? </xf:label>
</xf:input>
答案 0 :(得分:2)
您没有提到您要定位的XForms实现,但假设它是/它们完全符合,您有两个选择。
如果要在实例数据中指定类型,如示例代码所示,则需要将type属性放在XML架构实例命名空间中。因此,如果您已声明名称空间前缀xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
,则您的实例数据需要如下所示:
<takeMoneyOff xsi:type="xs:boolean" />
或者,如果实例数据来自外部源并且您无法控制它,那么您可以在绑定元素本身上放置一个type属性(它不应该在xsi命名空间中)在这种情况下):
<xf:bind id="takeMoneyOff" nodeset="/xForm/takeMoneyOff" type="xs:boolean" />
答案 1 :(得分:2)
您还可以使用<xforms:select>
,它将存储值或空白:
<xf:select ref="takeMoneyOff" class="takeMoneyOffClass">
<xf:label>Take Money Off? </xf:label>
<xf:item>
<xf:label>Yes</xf:label>
<xf:value>true</xf:value>
</xf:item>
</xf:select1>
使用适当的绑定,当出现空白时,您甚至可以存储“false”:
<xf:bind id="takeMoneyOff" nodeset="/xForm/takeMoneyOff"
calculate="choose(. = 'true', ., 'false')"
readonly="false()"/>