0

(これは、デフォルトのフォールバック値を持つソース ポートの対応物ですか? )

出力を次のように動作させたい XProc パイプラインがあります。

  • コマンド ラインで を使用して URL を指定する-oresult=foo.xmlと、パイプラインの結果がそのドキュメントに書き込まれます。
  • URL が指定されていない場合、結果は に書き込まれdefault.xmlます。

XProc でこの動作を取得することは可能ですか?

入力ポートのデフォルト値の場合との違いは、<p:output>要素のコンテンツがデフォルト出力ではなく、出力ポートのデフォルトソースとして使用されることです。

4

2 に答える 2

0

これは標準の XProc では不可能だと思います。入力宣言でデフォルトの接続を指定できますが、出力ポートの場合は状況が異なります。つまり、出力宣言には (外部からオーバーライドできるという意味で) デフォルトの接続などというものはありません。紛らわしいのは、p:outputは、複合ステップの宣言で出力接続を許可します (および、アトミック ステップではなく、複合ステップのみ)。ただし、これらはデフォルトの接続として機能しません。代わりに、出力ポートに表示されるデータがどこから来るかを示します (通常、含まれているステップの出力ポートですが、静的または外部ドキュメントの場合もあります)。また、パイプラインの依存関係グラフを変更する可能性があるため、これらの出力接続をオーバーライドすることもできません。

p:documentXProc の「接続」( 、p:pipep:inline、 でp:data表されるp:empty) は、データを書き込む場所ではなく、データを読み取るソースと考えることができます。同様に、ステップは、どこかからデータを読み取り、そこから結果が流出するブラック ボックスです。このモデルでは、ステップは結果がどうなるか、結果が最終的にどこに保存されるかについてはあまり気にしません。これは、そのステップに接続された他のステップの責任であり、最上位パイプラインの場合は XProc プロセッサの責任です。 .

デフォルトの出力接続が本当に必要な場合、考えられる回避策は、p:storeオプションのオプション (オーバーライドできる値) をトップレベルのパイプラインに追加するなどの手順を使用することですが、それがあなたの求めているものかどうかはわかりません。

于 2014-07-02T08:52:02.013 に答える