2.10.3.2 自動変換の使い方

自動変換では、最初の形式も最後の形式もXMLになります。つまり、XMLバッファがFML/FML32バッファに入力、変換、および処理され、最後にXMLに再変換されます。

XMLとFML/FML32バッファ間の変換を開始するには、UBBCONFIGファイルのSERVICESセクションのBUFTYPECONVパラメータを指定する必要があります。このパラメータは、XML2FMLまたはXML2FML32のどちらかの値のオプションのみを受け付けます。

このパラメータを使用してサーバーを起動した場合、クライアントtpcall()tpacall()tpconnect()、またはtpsend()によって入力バッファがXMLバッファからFML/FML32バッファに変換されてからサービスに送られます。tpreturn()またはtpsend()が呼び出されると、FML/FML32バッファがXMLバッファに変換されてから返されます。

BUFTYPECONVパラメータを使用しているサービスでは、クライアントまたはその他のサービスは、既存のサービスがFML/FML32バッファを処理する方法を変更することなく、XMLバッファを送受信できます。

ノート:

BUFTYPECONVパラメータを使用する場合は、以下の項目に注意してください。
  • サービスがBUFTYPECONVパラメータを使用している場合、出力されたすべてのFML/FML32バッファはXMLに変換されます。BUFTYPECONVパラメータを使用して新しいサービス名を作成すると、XMLを出力し、FML/FML32バッファに対する元のサービス名を保持することができます。
  • XMLとFML/FML32バッファ間の自動変換は、入力されたXMLデータに対してのみ処理を行います。その他のすべての入力バッファは、BUFTYPECONVで指定されている場合でも変換されません。
  • XML、FMLおよびFML32の入力/出力サービス・データが変換されるのは、サービスがサーバーとして機能する場合のみです。つまり、クライアントまたは他のサービスが、BUFTYPECONVパラメータを使用してサービスにリクエストを行う場合です。
  • BUFTYPECONVパラメータを使用しているサービスがクライアントとして動作している場合、変換は実行されません。たとえば、別のサービスに対してtpcall()を使用しているBUFTYPECONVパラメータが指定されたサービスなどが挙げられます。
  • /Qメッセージング・モードでは、TMQFORWARDはサービスの呼出しにtpcall()を使用します。呼び出されたサービスがBUFTYPECONVパラメータを使用している場合、自動変換が実行されます。

自動変換の際に、入力XMLルート要素名を保存することはできないため、出力XMLルート・タグは、デフォルト・ルート・タグ<FML Type="FML">または<FML Type="FML32">を使用します。