(eXist と XSLTForms を使用して) XML データベースへの XForm インターフェイスを設計する際に、オプション要素の入力コントロールを含めたいと思います。XML データ レコードは既に存在し、オプションの要素を含むものもあれば、含まないものもあります。レコードを更新するために、既存の XML レコードをモデル インスタンスとして使用しています。問題は、オプション要素が存在しない場合にフォーム コントロールが表示されないことです。これは論理的ですが、ユーザーがオプション要素にデータを追加したい場合に問題が発生します。
より明確にするために、データ レコードの例、data.xml を次に示します。
<a>
<b>content</b>
</a>
RNC スキーマを使用:
start =
element a {
element b { text },
element notes { text }?
}
XForms モデル:
<xf:model>
<xf:instance xmlns="" src="data.xml"/>
<xf:submission id="save" method="post" action="update.xq" />
</xf:model>
そして制御:
<xf:input ref="/a/notes">
<xf:label>Notes (optional): </xf:label>
</xf:input>
問題は、「メモ」入力コントロールが単に表示されないことです。
明らかな解決策は、ユーザーが必要に応じて要素を挿入できるようにトリガー ボタンを追加することですが、入力コントロールのみを表示し、空にすることをお勧めします。
私の質問は、コントロールが常に表示される原因となる、あまり知られていない属性/バインド/複数のインスタンス/xpath 式の微妙な組み合わせはありますか?