0

我正在尝试根据 XML Schema 绑定 XForms 实例。它适用于构面,例如在以下情况下,ValeurNoteType对类型的限制在哪里xs:decimal

<xforms:bind nodeset="instance('note-template')">
    <xforms:bind nodeset="Valeur" type="ValeurNoteType"/>
</xforms:bind>

XForms 1.1 似乎不支持用于绑定的复杂类型,如下例所示,其中ExamenType是序列:

<xforms:bind nodeset="instance('examen-template')">
    <xforms:bind nodeset="Examen" type="ExamenType"/>
</xforms:bind>

我想要的是避免为xml 模式中存在的类型的<xforms:bind nodeset="Titre" required="true()"/>每个元素(或其他条件,如序列中元素的类型等)编写。ExamenTypeMin Occurs = 1xs:date

有没有办法用 Orbeon 做到这一点?

4

1 回答 1

1

XForms 1.1 清楚地指定了如何type处理属性:

type模型项属性不适用于包含子元素的实例节点。type模型项属性将数据类型(如 [XML Schema 第 2 部分] 中定义)与字符串值(如 [XPath 1.0] 中定义)相关联实例节点。被关联的数据类型可以从 simpleType 定义中获取,也可以从 complexType 中获取 simpleContent 定义。如果无法如前所述获取数据类型,则使用 Default Value of xsd:string

换句话说,该type属性仅用作验证文本内容的一种方式,而不是文档的结构。

如果存在模式,则验证整个实例(Orbeon 表单具有控制它的扩展,请参阅验证),并且在该过程中节点也可以标记为无效,包括由于复杂的内容验证。但我不确定这是否会对您的情况有所帮助。无论如何,这是一个独立于type属性处理的过程。

于 2013-01-02T03:11:47.767 回答