验证Orbeon XBL组件中的数据

时间:2018-08-27 15:18:24

标签: orbeon

我想为Orbeon Form Builder创建一个自定义XBL组件,该组件将包含输入文本并对其进行验证。

我已经设法创建了组件并将其添加到Form Builder侧栏,但是我不知道如何进行验证。

我要进行的验证有点复杂,类似于信用卡,有些数字具有特殊意义,然后有一个校验和需要计算和验证。

到目前为止,我是这样的:

<xbl:xbl xmlns:xf="http://www.w3.org/2002/xforms"
         xmlns:ev="http://www.w3.org/2001/xml-events"
         xmlns:xbl="http://www.w3.org/ns/xbl"
         xmlns:xxbl="http://orbeon.org/oxf/xml/xbl"
         xmlns:fb="http://orbeon.org/oxf/xml/form-builder"
         xmlns:my="http://example.com/xbl">

    <xbl:binding element="my|component" id="my-component" xxbl:mode="lhha binding value">
        <metadata xmlns="http://orbeon.org/oxf/xml/form-builder">
            <display-name lang="en">Component</display-name>
            <icon lang="en">
                <small-icon>/forms/orbeon/builder/images/input.png</small-icon>
                <large-icon>/forms/orbeon/builder/images/input.png</large-icon>
            </icon>
            <templates>
                <view>
                    <xf:input id="" ref="" xmlns="">
                        <xf:label ref=""/>
                        <xf:hint ref=""/>
                        <xf:help ref=""/>
                        <xf:alert ref=""/>
                    </xf:input>
                </view>
            </templates>
        </metadata>
    </xbl:binding>
</xbl:xbl>

1 个答案:

答案 0 :(得分:1)

您可以将验证模板放置在元数据中,与<view>处于同一级别,但是可以使用<bind>。例如:

<bind
    type="xf:integer"
    constraint="...some XPath expression here..."/>

如果该值由xf:integer验证,则可以省略constraint类型。

使用constraint,您应该能够验证校验和。

如果您的部分价值遵循与信用卡相同的规则,则可以使用标准的is-card-number()函数作为助手。