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」を参照してください。