0

ファイル システムに基づくリポジトリにフォーム定義を保存します。リポジトリ内の各フォーム定義には、file-id. Orbeon Forms では、フォーム定義は<app name, form name>ペアで識別されます。だから私はfile-idasを使いますform namePersistence APIに従って、Orbeon Forms とリポジトリをブリッジするカスタマイズされた永続レイヤーを作成しました。

フォーム定義を共有/再利用/移行するために、あるリポジトリから別のリポジトリにフォーム定義をコピー/エクスポート/インポートしたいと考えています。フォーム定義がリポジトリから別のリポジトリにコピーされると、フォーム定義はfile-id変更されますform nameが、フォーム定義は古いもののままです。通常のファイルを別のディレクトリにコピーしたり名前を変更したりするのと同じですが、ファイルの内容は変更されません。

このようなシナリオでは<app name, new file-id>、永続化 URL(API) を使用して<app name, old file-id>、そのコンテンツでフォーム定義にアクセスします。私の最初の質問は、フォーム ビルダーまたはフォーム ランナーでどちらの ID が優先されるかということです。

<app name, new file-id>永続化 URL(API) がフォーム ビルダーとフォーム ランナーの両方で優先される場合、移植性は完璧です。フォーム ビルダーでテストしました。保存または公開するときに、フォーム ビルダーは<app name, old file-id>そのコンテンツ (XML) で を使用します。2 つ目の質問は、優先順位を変更またはカスタマイズできますか?

4

2 に答える 2

0

@avernet、私のソリューションではform name、XML 内で を使用しません。次の URL を使用して
/orbeon/fr/orbeon/builder/edit/${fileId}
フォーム ビルダーを呼び出します: パブリッシュすると、フォーム ビルダーは次のように呼び出します:
/orbeon/fr/service/my-perisit/crud/${app-name-in-xml}/${form-name-in-xml}/form/form.xhtml?document=${fileId}
カスタマイズした永続レイヤーはパラメーターをmy-persist無視し${form-name-in-xml}ます。

そして、/orbeon/fr/${app name}/${fileId}/newフォームランナーと呼んでいました。

于 2012-11-08T07:15:51.017 に答える
0

参考までに、API についてはこちらに、プロパティと用語についてはこちらに記載されています。

どの永続層が使用されているかを判断するために、Form Builder と Form Runner は 3 つのパラメーターのみを扱います (用語の一貫性を少し高めただけです)。

  • アプリ名
  • フォーム名
  • リソース タイプ (フォーム定義かフォーム データか)

構成プロパティ (ワイルドカードを使用できる場所) は、アプリ/名前/リソース タイプの組み合わせごとに、使用する永続レイヤーを決定します。

したがって、ある種の優先順位が発生する唯一の場所は、永続化レイヤーの構成プロパティのレベルです。他に関連するものはありません。たとえば、デフォルトのプロパティには次のように記載されています。

<property
  as="xs:string"
  name="oxf.fr.persistence.provider.*.*.*"
  value="exist"/>

これは、デフォルトでは、すべてが eXist を通過することを意味します。

しかし、次のこともあります。

<property as="xs:string"
  name="oxf.fr.persistence.provider.orbeon.builder.form"
  value="resource"/>

<property
  as="xs:string"
  name="oxf.fr.persistence.provider.orbeon.contact.form"
  value="exist"/>

これはそれぞれ、Form Builder 自体のフォーム定義が Orbeon Forms リソース (通常は JAR ファイル) に保存されることを意味します。ただし、Contact フォームのフォーム定義は eXist に格納されます。他のプロパティについても同様です。

Form Builder が保存でフォーム定義を保存すると、アプリ/フォーム名の下にフォーム データとして保存されます。orbeon/builderフォームを発行すると、実際のアプリ/フォーム名の下にフォーム定義として保存されます。

これがあなたの質問に答えるのに役立つことを願っています.

于 2012-11-07T18:10:40.647 に答える