我想知道如何在Orbeon中使用动态元素。在Orbeon的沙箱中存在一个名为dynamic-dropdown(http://localhost:8080/orbeon/xforms-sandbox/sample/dynamic-dropdown
)的示例。
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:xf="http://www.w3.org/2002/xforms"
xmlns:xxf="http://orbeon.org/oxf/xml/xforms">
<head>
<title>Dynamic dropdown depending on checkboxes</title>
<xf:model>
<xf:instance id="selected-values" xmlns="">
<instance>
<pets/>
<favorite/>
</instance>
</xf:instance>
<xf:instance id="pets" xmlns="">
<root>
<item name="Cat" value="cat"/>
<item name="Dog" value="dog"/>
<item name="Fish" value="fish"/>
<item name="Cobra" value="cobra"/>
</root>
</xf:instance>
</xf:model>
<style type="text/css">
.xforms-label { display: block; font-weight: bold }
</style>
</head>
<body>
<xf:select ref="pets" appearance="full">
<xf:label>Please list all your pets:</xf:label>
<xf:itemset ref="instance('pets')/item">
<xf:label ref="@name"/>
<xf:value ref="@value"/>
</xf:itemset>
</xf:select>
<br/>
<xf:select1 ref="favorite">
<xf:label>Select your favorite pet:</xf:label>
<xf:itemset>
<xf:label/>
<xf:value/>
</xf:itemset>
<xf:itemset ref="instance('pets')/item[@value = xxf:split(context()/../pets)]">
<xf:label ref="@name"/>
<xf:value ref="@value"/>
</xf:itemset>
</xf:select1>
</body>
</html>
我在Orbeon 4.8和4.9中测试过,什么也没做。什么都没有,我指的是下拉列表没有填满选定的元素。
我也可以在“开放式”沙箱(http://www.argonauta.org/orbeon/xforms-sandbox/sample/dynamic-dropdown)中测试它,这里工作正常。但我不知道哪个版本(可能是4.3)。
问题:该示例在当前版本的Orbeon中无效吗?这是一个错误吗? 如果示例无效,必须进行哪些修改?
答案 0 :(得分:0)
好的,似乎如果你换行:
<xf:itemset ref="instance('pets')/item[@value = xxf:split(context()/../pets)]">
要
<xf:itemset ref="instance('pets')/item[@value = xxf:split(context()/pets)]">
该示例适用于Orbeon 4.9版。