InboundXMLハンドラーにより、XML要求の受信とXML応答の送信が可能になります。
複数のRECEIVEコマンドとSENDコマンドを発行すると、大容量XMLドキュメントのさまざまなセクションの読み込みと作成が可能です。
このコンテンツ・ハンドラーのRECEIVEコマンドが実行されると、以下のステップが行われます。
内容がない場合、OKステータスが返されます。
ハンドラーは、内容タイプがXMLグループに属しているかをチェックします。内容タイプがサポートされていない場合、エラーがプログラムに返されます。このチェックをオーバーライドして、ハンドラーがデータを受信できるようにするにはCONTENTキーワードを使用します。データはXMLであることが前提です。
ハンドラーは、受信バイト・ストリームのUnicode変換に適用されるエンコーディングを決定します。
ハンドラーは、このUnicodeデータを保管する必要があるかどうかを判断します。
ハンドラーはXMLを変換し、データをプログラム・フィールドやリストにバインドします。
構文:
|
例
RECEIVE HANDLER(InboundXML) XSL(ORDER) SERVICE_LIST(…)
このコンテンツ・ハンドラーのSENDコマンドが実行されると、以下のステップが行われます。
XSLキーワードを使用するハンドラーは、プログラム・フィールドとリストを結果のXMLに変換します。FRAGMENTキーワードがある場合、この変換は保管されます。これが、送信される最後のXMLの唯一のフラグメントであるためです。FRAGMENTキーワードがない場合、この変換が最後として扱われ、最後の出力XMLが構築されて送信準備が整います。
ハンドラーは、このUnicodeデータを保管する必要があるかどうかを判断します。
ハンドラーはCONTENTキーワードの値を使用して、HTTPプロトコルの内容タイプの値を決定します。
ハンドラーは、リモート・クライアントに返すHTTP応答を作成します。
オプションのUAFILEキーワードとUAPATHキーワードは、内容の推奨パスとファイル名をリモート・クライアント・プログラムに通知する場合に使用できます。LANSA Integratorユーザー・エージェントは、これらのファイル名とパス名を、応答パネルの保存ポップアップ・メニューに追加します。
サービス・プロパティinbound.xml.default.contenttypeを使用して、省略値の内容タイプを設定できます。
構文:
|
例
SEND HANDLER(InboundXML) XSL(…) UAFILE(…) UAPATH(…) SERVICE_LIST(…)