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">を使用します。