WebSphere Message Broker バージョン 8.0.0.5 オペレーティング・システム: AIX、HP-Itanium、Linux、Solaris、Windows、z/OS

製品の最新バージョンについては、IBM Integration Bus バージョン 9.0 をご覧ください。

IDL データ・タイプ

DataObject ドメインを CORBA と共に使用するときは、XML スキーマおよび ESQL タイプが IDL ファイル内のタイプとどのように対応しているかを知る必要があります。

プリミティブ IDL タイプ

以下の表は、IDL タイプ、XML スキーマ単純タイプ、および ESQL タイプの間のマッピングを示しています。
IDL XML スキーマ ESQL
boolean xsd:boolean BOOLEAN
char

<xsd:simpleType name="char">
<xsd:restriction base="xsd:string">
<xsd:length value="1" fixed="true/>
</xsd:restriction>
</simpleType>

CHARACTER
wchar

<xsd:simpleType name= “wchar”>
<xsd:restriction base=”xsd:string”/>
</xsd:simpleType>

CHARACTER
double xsd:double FLOAT
float xsd:float FLOAT
octet xsd:unsignedByte INTEGER
long xsd:int INTEGER
Long long xsd:long INTEGER
short xsd:short INTEGER
string xsd:string CHARACTER
wstring xsd:string CHARACTER
Unsigned short xsd:unsignedShort INTEGER
Unsigned long xsd:unsignedInt INTEGER
Unsigned long long xsd:unsignedLong DECIMAL

複合 IDL タイプ

WebSphere® Message Broker は、以下の複合 IDL タイプをサポートします。
  • Enum
  • Typedefs
  • Sequence
  • Structure
各複合タイプは、以下の場所でサポートされます。
  • 操作の戻りの型
  • In パラメーター
  • Inout パラメーター
  • Out パラメーター
  • exception 内
  • structure 内
  • sequence 内
  • typedef 内
以下の例は、IDL タイプ、XML スキーマ、および XML の間のマッピングを示しています。
Enum
IDL Enum は XML スキーマの列挙型にマップされます。 ツリー内の Enum のタイプは、ストリングです。
以下に示すのは、IDL ファイルの例です。
enum myEnum {A, B, C};
interface example {
	void myoperation(in myEnum input1);
};
以下に示すのは、XML スキーマの例です。
<xsd:simpleType name=”myEnum”>
	<xsd:restriction base=”xsd:string”> 
		<xsd:enumeration value=”A”/> 
		<xsd:enumeration value=”B”/>
		<xsd:enumeration value=”C”/>
	</xsd:restriction> 
</xsd:simpleType>
以下に示すのは、XML の例です。
<example.myoperation>
	<input1>A</input1>
</example.myoperation>
Sequence および typedef
IDL typedef は、XML スキーマのタイプ制約にマップされます。 IDL sequence は、XML スキーマの sequence complex type にマップされます。 Sequence を使用できるのは、typedef 内においてのみです。
以下に示すのは、IDL ファイルの例です。
Typedef long myLong; 
typedef sequence<long> longSeq; 
interface example { 	
	void myoperation(in longSeq input1, inout myLong input2); 
};  
以下に示すのは、XML スキーマの例です。
<xsd:complexType name="longSeq"> 
	<xsd:sequence> 
		<xsd:element name="item" minOccurs="0" maxOccurs="unbounded" type="xsd:int"/>
	</xsd:sequence>
</xsd.complexType>
sequence を sequence<long, 10> という構文とバインドでき、XSD ファイルに結合を配置できます。
以下に示すのは、XML の例です。
<example.myoperation>
	<input1>
		<item>10</item>
		<item>11</item>
		<item>12</item>
	</input1>
</example.myoperation>
Structure
IDL structure は、XML スキーマの complexType 定義にマップされます。
以下に示すのは、IDL ファイルの例です。
struct myStruct { 
	char c; 
	string str;
	octet o; 
	short s; 
	unsigned long long ull; 
	float f; 
	double d; 
};
interface example {
	void myoperation(in myStruct input1);
};
以下に示すのは、XML スキーマの例です。
<xsd:complexType name="myStruct">
	<xsd:sequence>
		<xsd:element name="c" type="xsd:string" maxOccurs="1" minOccurs="1"/> 
		<xsd:element name="str" type="xsd:string" nillable="true" maxOccurs="1" minOccurs="1"/>
		<xsd:element name="o" type="xsd:byte" maxOccurs="1" minOccurs="1"/> 
		<xsd:element name="s" type="xsd:short" maxOccurs="1" minOccurs="1"/> 
		<xsd:element name="ull" type="xsd:unsignedLong" maxOccurs="1" minOccurs="1"/>
		<xsd:element name="f" type="xsd:float" maxOccurs="1" minOccurs="1"/>
		<xsd:element name="d" type="xsd:double" maxOccurs="1" minOccurs="1"/> 
	</xsd:sequence>
</xsd:complexType>
以下に示すのは、XML の例です。
<example.myoperation>
	<input1>
		<c>c</c>
		<str>hello</str>
		<o>12</o>
		<s>10</s>
		<ull>110</ull>
		<f>12.0</f>
		<d>12.1</d>
	</input1>
</example.myoperation>

モジュール

CORBA では、モジュールによって有効範囲が決まります。 インターフェースが IDL ファイル内でモジュールに含まれている場合、インターフェース名は以下の形式に従ってモジュール名で修飾されます。

ModuleName.InterfaceName.OperationName

以下の例は、IDL ファイル内のモジュールを示しています。
Module one {
	Interface OneAInterface {
	};
};
OneAInterface というインターフェースの完全修飾名は、one.OneAInterface です。 IDL ファイルの中では、モジュールを他のモジュール内にネストすることができます。 その場合、インターフェースの完全修飾名には、ルート・モジュールから始まって、複数のモジュール名を含めることができます。例を挙げます。

ModuleNameA.ModuleNameB.InterfaceName.OperationName

IDL ファイルには、同じ名前の複数の操作を含めることができます。ただし、それらの操作が異なるモジュールの中にあることが必要です。
特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック

Copyright IBM Corporation 1999, 2014Copyright IBM Corporation 1999, 2014.

        
        最終更新:
        
        最終更新: 2015-02-28 17:48:34


概念トピック概念トピック | バージョン 8.0.0.5 | bc22410_