1

XForms でバインドを使用するようにコードを変更しています (どこでもノードセットを使用するよりも良い方法です!) が、エラーが発生します。

「エラー: XForms エラー (8): id (data_criterion) はバインド要素を参照していません...」というエラー メッセージが表示されます。

私が使用しているチュートリアル/ガイドから、これは機能するはずですが、明らかに何かが欠けています! (ところで、私はここの例の後にバインディング コードをモデル化していました: http://en.wikibooks.org/wiki/XForms/Bind )

この問題は、例のように xf:input ではなく xf:select コントロールを使用したことが原因であると当初は考えていましたが、コードを最も単純なコードに落とし込んだ後でも、エラーが発生します。

これは私が使用しているモデルコードです:

 <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>

「エラー: XForms エラー (8): id (data_criterion) はバインド要素を参照していません...」というエラー メッセージが表示されます。

誰が問題が何であるかについての洞察を持っていますか? また、知っておくべきバインディングと xf:select (xf:itemset を使用) コントロールの特別な使用法はありますか? (最終的には、フォームで多くの xf:select コントロールを使用しています..)

前もって感謝します!

編集:

このバリデーターを使用してコードを実行したところ、次のメッセージが表示されました (bind 行を参照):

4

1 に答える 1

2

あなたが変更したいかもしれないいくつかのこと:

  1. これがエラーの原因かどうかは定かではありませんが、nodeset式はinstance('criteria_data')/criteria/..., without である必要がありますfile。注意:instance()ドキュメント ノードではなく、ルート要素を返します。(これは、質問を更新して世話をしたものです。良いです)
  2. xfのがありませんbind。次のようになります<xf:bind id="data_criterion" nodeset="instance('criteria_data')/criteria/criterion"/>

以下のコードの完全な例を参照してください。これは、Orbeon Forms の下でうまく機能します。

<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>
于 2010-06-04T01:21:00.920 に答える