代码之家  ›  专栏  ›  技术社区  ›  developer

XForms绑定元素错误

  •  1
  • developer  · 技术社区  · 14 年前

    我正在将代码更改为在XForms中使用绑定(这比在任何地方使用节点集都好!)但我有错误。

    我收到的错误消息是:“error:XForms error(8):id(data\u criterion)没有引用bind元素…”

    从我一直在使用的教程/指南来看,这似乎应该是可行的,但显然我遗漏了一些东西(顺便说一句,我在这里的示例之后对绑定代码进行建模: http://en.wikibooks.org/wiki/XForms/Bind

    我原本以为问题是因为我使用的是xf:select控件,而不是示例中的xf:input,但即使我将代码简化为最简单的代码,仍然会收到错误!

     <xf:model id="select_data">
    
         <xf:instance id="criteria_data" xmlns="">
             <file>
                 <criteria>
                     <criterion></criterion>
                 </criteria>
             </file>
         </xf:instance>
    
         <bind id="data_criterion" nodeset="instance('criteria_data')/criteria/criterion"/>
    
    </xf:model>
    

    至于ui代码,我有:

    <xf:input bind="data_criterion">
        <xf:label>Enter criteria:</xf:label>
    </xf:input>
    

    我收到的错误消息是:“error:XForms error(8):id(data\u criterion)没有引用bind元素…”

    有人知道问题出在哪里吗?另外,绑定和xf:select(带有xf:itemset)控件是否有我应该注意的特殊用法(我最终在表单上使用了很多xf:select控件..)

    提前谢谢!

    编辑:

    validator ,我得到了这个消息(指绑定行):

    1 回复  |  直到 14 年前
        1
  •  2
  •   avernet    14 年前

    您可能需要改变以下几点:

    1. 不确定这是错误的原因,但是 nodeset instance('criteria_data')/criteria/... ,无 file . 记得: instance() 返回根元素,而不是文档节点(这一次你注意到了更新问题;好的)
    2. 你错过了 xf bind . 应该是: <xf:bind id="data_criterion" nodeset="instance('criteria_data')/criteria/criterion"/> .

    <xhtml:html xmlns:xhtml="http://www.w3.org/1999/xhtml"
          xmlns:xforms="http://www.w3.org/2002/xforms"
          xmlns:xf="http://www.w3.org/2002/xforms"
          xmlns:xxforms="http://orbeon.org/oxf/xml/xforms"
          xmlns:ev="http://www.w3.org/2001/xml-events"
          xmlns:xs="http://www.w3.org/2001/XMLSchema"
          xmlns:fr="http://orbeon.org/oxf/xml/form-runner">
        <xhtml:head>
            <xhtml:title>SO Bind</xhtml:title>
            <xf:model id="select_data">
    
                <xf:instance id="criteria_data" xmlns="">
                    <file>
                        <criteria>
                            <criterion>Gaga</criterion>
                        </criteria>
                    </file>
                </xf:instance>
                <xf:bind id="data_criterion" nodeset="instance('criteria_data')/criteria/criterion"/>
           </xf:model>
    
        </xhtml:head>
        <xhtml:body>
            <xf:input bind="data_criterion">
                <xf:label>Enter criteria:</xf:label>
            </xf:input>
        </xhtml:body>
    </xhtml:html>