XPath関数を使用したファイル・システムへの大規模なXSLT/XQuery出力の書込み
次の関数を使用して、大規模なXSLT/XQuery操作の結果をディレクトリ・システム内の一時ファイルに書き込むことができます。その後、ドキュメントは必要なときに一時ファイルからロードされます。これにより、ドキュメント全体をバイナリXMLとしてメモリーにキャッシュする必要がなくなります。
-
ora:processXSLT -
ora:doXSLTransformForDoc
この機能を有効化にするには、ora:processXSLT関数でproperties引数を使用します。
ora:processXSLT('template','input','properties'?)
この引数の値は、XSLT内で、XSL変数からデータを抽出するのと同様な方法で取得します。properties引数は、次の例に示されているような構造のXML要素です。大きいペイロードの結果(10MBを超えるなど)に対しては、streamResultToTempFileをyesに設定します。一時ファイルに書き込む必要のない小さいペイロードの結果には、このプロパティをデフォルト値のnoの設定のままにしておきます。
<propertiesXMLVar>
<common:item xmlns:common="http://schemas.oracle.com/service/bpel/common">
<common:name>streamResultToTempFile</common:name>
<common:value>yes</common:value>
</common:item>
</propertiesXMLVar>
XSLT内で、名前streamResultToTempFileおよびその値yesを介して、このパラメータにアクセスできます。
Oracle BPEL Process Managerでは、ora:processXSLT('template','input','properties'?)にプロパティを移入するためにリテラルのassignが実行されます。
この関数の使用の詳細は、「processXSLT」を参照してください。
ora:doXSLTransformForDoc関数では、この機能を有効にするために、nameおよびvalueプロパティを設定します。
ora:doXSLTransformForDoc('template','input','name', 'value')
この関数では、nameにstreamResultToTempFileおよびvalueにyesが渡されます。
この関数の使用の詳細は、「doXSLTransformForDoc」を参照してください。