0

フォームビルダーでインスタンス化すると、fr-form-instance に、チュートリアルに示されている単一のノードだけでなく、子ノードを含むノードが含まれるカスタムコンポーネントを作成しようとしています: http://wiki.orbeon.com /forms/doc/developer-guide/xbl-components-guide#TOC-Event-handling .

たとえば、チュートリアルの入力コンポーネントを form-b​​uilder でインスタンス化すると、次のようになります。

.....

    <fb:metadata>
        <fb:display-name lang="en">Custom Component</fb:display-name>
        <fb:datatype>xforms:string</fb:datatype>
        <fb:template>
            <cc:test ref=""/>
        </fb:template>
    </fb:metadata>   
    <xbl:binding element="fr|tutorial-input" id="fr-tutorial-input">
        <xbl:template>
            <xforms:group xbl:attr="model context ref bind" xxbl:scope="outer">
                <xbl:content includes="xforms|label,xforms|help,xforms|hint,xforms|alert"/>
                <xforms:group xxbl:scope="inner">
                    <xxforms:variable name="binding" as="node()?">
                        <xxforms:sequence select="." xxbl:scope="outer"/>
                    </xxforms:variable>
                    <xforms:input ref="$binding"/>
                </xforms:group>
            </xforms:group>
        </xbl:template>
    </xbl:binding>

..... 

フォーム ビルダーは、fr-form-instance に 1 つのノードのみを持ちます。

.....
    <xforms:instance id="fr-form-instance">
        <form>
            <section>
                <contorl-x/> //only one node
.....

私がやりたいことは次のとおりです。

.....
    <xforms:instance id="fr-form-instance">
        <form>
            <section>
                <contorl-x>// x child nodes 
                    <contorl-x-child-one> 
                    <contorl-x-child-two> 
                       .....
                </contorl-x> 
.....

これを行うことは可能ですか?これと同様に動作する他のコンポーネント/例はありますか?

4

1 に答える 1

1

セクション テンプレートは同様のことを行います。

  • セクション テンプレートを挿入すると、Form Builder は 1 つの要素のみを挿入します
  • 実行時にセクション テンプレート コンポーネントが表示されると、ネストされた要素が挿入されます。

でこれがどのように行われるかを確認できますform-to-xbl.xsl

同様に、欠落している要素を作成する XBL コンポーネントのプロトタイプを次に示します。

今、悪魔は細部に宿っています。特に次のことを決定する必要があります。

  • コンポーネントがネストされた要素を作成するとき
  • それらを削除するかどうか

また、現時点では、XBL コンポーネント自体はネストされた要素を検証できないことに注意してください。Form Builder によってバインドが生成されたトップレベルの要素のみが、データを検証できます。

セクション テンプレートは、XBL コンポーネント自体のサブインスタンスを検証することで、これを回避します。

于 2012-05-15T01:39:53.853 に答える