Orbeon 控件可以有多个值吗?

Can Orbeon controls have multiple values?

我认为答案是否定的,但有人向我提出问题,所以我想确认一下。我的理解是,我为在 Form Builder 中使用而创建的任何自定义 XBL 控件都可以有一个且只有一个值。这是正确的吗?

我一直这么认为,因为控件名称然后在数据实例中用作包含值的节点的名称。

这个问题源于希望拥有具有多个值的可重用组件,例如,地址控件,以便可以一致地记录地址并且不需要多次添加同一组字段。 Orbeon 确实以部分模板的形式对此提供了一些支持,但是因为控件名称在部分模板的每个实例中保持相同,所以这不适用于我们的设计。

我的最佳想法是记录多个值的自定义控件可以将所有值编码为单个文本字符串,例如 JSON。当然,这并不理想。

还有其他选择吗?

控件可以有多个值。当发生这种情况时,值通常存储在嵌套元素中。 IE。控件可以绑定到元素 <address>,并可以创建嵌套元素 <street><city><country> 等来存储地址的不同部分。

实际上,您可以在 Image Annotation 注释控件(参见 wpaint.xbl)中查看这是如何完成的,它创建了嵌套元素 <image><annotation>,利用 xxbl:mirror="true" 功能。