2.9.2 接続時の電文の形式変換
Object Accessアダプタのサービスリクエスタとのインターフェースで使用する電文には,要求電文と応答電文(Fault情報を含む)があります。Object Wrapperで使用するIDLおよびObject WrapperのIDLと電文の形式変換について次に示します。
- 〈この項の構成〉
(1) IDLのサポート範囲
Object AccessアダプタがサポートしているIDLを次に示します。
IDL |
備考 |
---|---|
module定義 |
− |
interface定義 |
継承定義は使用不可 |
operation定義 |
− |
typedef定義 |
sequence型だけ |
struct定義 |
− |
exception定義 |
− |
IDL |
備考 |
---|---|
in引数 |
− |
out引数 |
− |
inout引数 |
− |
リターン値 |
− |
raises定義 |
ユーザ例外は1つだけ |
IDL |
備考 |
---|---|
long |
− |
float |
− |
string |
文字列長は指定不可 |
any |
「(4) any型の扱い」を参照してください。 |
struct |
− |
sequence |
配列サイズは指定不可 |
(2) 型変換
Object WrapperのIDLの定義型と電文で扱う型情報で変換する内容を次に示します。
Object WrapperのIDL |
電文 |
---|---|
typedef sequence<octet> OctSeq |
xsd:string |
struct Binary |
xsd:base64Binary |
(3) 文字コード変換
Object WrapperのIDLに定義したstring型は,SJISコードとして扱います。文字コード変換の対象には,型変換でstring型に変換される「typedef sequence<octet> OctSeq」を含みます。文字コード変換対象の,Object WrapperのIDLを次に示します。
Object WrapperのIDL |
電文 |
---|---|
method_name |
xsd:string |
typedef sequence<octet> OctSeq |
xsd:string |
(4) any型の扱い
Object AccessアダプタでIDLのCORBA.Anyは,単純型(primitive型)と複合型(complex型)のsequence<octet>の値が扱えます。
CORBA.Anyの電文での表現,および電文の各要素に指定できる値を次に示します。
-
CORBA.Anyの電文フォーマット
<xsd:complexType name="CORBA.Any"> <xsd:sequence> <xsd:elementname="type" type="xsd:string" maxOccurs="1" minOccurs="1"/> <xsd:elementname="value" type="xsd:string" maxOccurs="1" minOccurs="1" /> </xsd:sequence> </xsd:complexType>
Object WrapperのIDL |
type要素の値 |
value要素の値 |
---|---|---|
long |
long |
-2147483648から2147483647の数字 |
float |
float |
単精度の浮動小数点文字列 |
typedef sequence<octet>OctSeq |
EComm2.OctSeq |
単数・複数の文字 |
struct Binary |
EComm2.Binary |
base64Binary表記文字列 |