一部の共同作業者が複雑なメタデータレコード(TEIヘッダー)を作成するのに役立つ小さなXFormsアプリケーションを作成しています。プロジェクトによって要求されたすべてのメタデータを完全に入力するには、ユーザーが複数のセッションを必要とする可能性があることを前提に進めています。ですから、私がやりたいのは、フォームデータをアイテム固有の識別子で名前が付けられたファイルに保存し、リピーターが部分的に完成したフォームのリストから選択して、データをエディターにロードして作業を再開できるようにすることです。残念ながら、ロード機能を期待どおりに機能させることができません。つまり、リストからファイル名を選択した後、保存したフォームからエディターにデータをロードして戻すことができません。
これが私のモデルのインスタンスです:
<xf:instance id="itemMD" xmlns="http://www.tei-c.org/ns/1.0"
src="http://localhost:8080/exist/rest/db/home/sga/model.sga.metadata.xml"></xf:instance>
<xf:instance id="control-codes" xmlns="">
<data>
<boolean1>false</boolean1>
<output-filename>temp</output-filename>
<input-filename></input-filename>
</data>
</xf:instance>
<xf:instance id="file-utils" xmlns="http://exist.sourceforge.net/NS/exist" src="http://localhost:8080/exist/rest/db/home/sga/posted_data/"></xf:instance>
そして、ここに提出要素があります:
<xf:submission id="save" method="put"
replace="none">
<xf:resource value="concat('http://localhost:8080/exist/webdav/db/home/sga/posted_data/', instance('control-codes')/output-filename)"></xf:resource>
</xf:submission>
<xf:submission id="load" method="get" replace="instance" instance="itemMD">
<xf:resource value="concat('http://localhost:8080/exist/webdav/db/home/sga/posted_data/', instance('control-codes')/input-filename)">
</xf:resource>
<xf:message ev:event="xforms-submit-error">Cannot load!</xf:message>
</xf:submission>
そして、これがドキュメント本文の関連ウィジェットです。
<div id="loader" class="span4 offset8">
<xf:select1 id="load-from-file" ref="instance('control-codes')/input-filename">
<xf:label>Choose file: </xf:label>
<xf:itemset nodeset="instance('file-utils')//exist:resource">
<xf:label ref="@name"></xf:label>
<xf:value ref="@name"></xf:value>
</xf:itemset>
</xf:select1>
<xf:submit submission="load">
<xf:label>Load</xf:label>
</xf:submit>
</div>
これはXFormsでの私の最初の真剣な仕事なので、おそらくここで私が修正できたはずの明らかな何かがあるかもしれませんが、私は困惑しています。(URIを渡す必要がある場所に文字列を渡すかどうかも疑問に思っていますか?)eXistDBに含まれているXSLTFormsプロセッサを使用しています