WebSphere Message Broker Version 8.0.0.5 Betriebssysteme: AIX, HP-Itanium, Linux, Solaris, Windows, z/OS

Sehen Sie sich die Informationen zur aktuellen Produktversion im IBM Integration Bus Version 9.0 an.

IDL-Datentypen

Wenn Sie die DataObject-Domäne zusammen mit CORBA verwenden, müssen Sie wissen, wie XML-Schema und ESQL-Typen den Typen in der IDL-Datei entsprechen.

Primitive IDL-Typen

Die folgende Tabelle zeigt die Zuordnung zwischen IDL-Typen, XML-Schema, einfachen Typen und ESQL-Typen.
IDL XML-Schema 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

Komplexe IDL-Typen

WebSphere Message Broker unterstützt die folgenden komplexen IDL-Typen:
  • Enums (Aufzählungen)
  • Typedefs (Typdefinitionen)
  • Sequences (Sequenzen)
  • Structures (Strukturen)
Die komplexen Typen werden in folgenden Bereichen unterstützt:
  • Rückgabetypen für Operationen
  • In-Parameter
  • Inout-Parameter
  • Out-Parameter
  • Innerhalb von Ausnahmen
  • Innerhalb von Strukturen
  • Innerhalb von Sequenzen
  • Innerhalb von Typdefinitionen
Die folgenden Beispiele zeigen die Zuordnung zwischen IDL-Typen, dem XML-Schema und XML.
Enums (Aufzählungen)
IDL-Aufzählungen werden Aufzählungen im XML-Schema zugeordnet. Enums innerhalb der Baumstruktur gehören dem Typ 'Zeichenfolge' an.
Hier eine IDL-Beispieldatei:
enum myEnum {A, B, C};
interface example {
		void myoperation(in myEnum input1);
};
Nachfolgend finden Sie ein Beispiel für ein XML-Schema:
<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>
Hier ein XML-Beispiel:
<example.myoperation>
		<input1>A</input1>
</example.myoperation>
Sequenzen und Typdefinitionen (typedefs)
IDL-Typdefinitionen werden XML-Schematypeinschränkungen zugeordnet. IDL-Sequenzen werden komplexen Sequenztypen im XML-Schema zugeordnet. Sequenzen können nur innerhalb von Typdefinitionen verwendet werden.
Hier eine IDL-Beispieldatei:
Typedef long myLong; 
typedef sequence<long> longSeq; 
interface example { 	
		void myoperation(in longSeq input1, inout myLong input2); 
};  
Nachfolgend finden Sie ein Beispiel für ein XML-Schema:
<xsd:complexType name="longSeq"> 
	<xsd:sequence>
				<xsd:element name="item" minOccurs="0" maxOccurs="unbounded" type="xsd:int"/>
	</xsd:sequence>
</xsd.complexType>
Eine Sequenz kann mit der Syntaxsequenz <long, 10> gebunden werden, in die XSD-Datei wird dann eine Bindung integriert
Hier ein XML-Beispiel:
<example.myoperation>
		<input1>
				<item>10</item>
				<item>11</item>
				<item>12</item>
		</input1>
</example.myoperation>
Structures (Strukturen)
IDL-Strukturen werden XML-Schemadefinitionen des komplexen Typs (complexType) zugeordnet.
Hier eine IDL-Beispieldatei:
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);
};
Nachfolgend finden Sie ein Beispiel für ein XML-Schema:
<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>
Hier ein XML-Beispiel:
<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>

Module

In CORBA definieren Module einen Bereich. Wenn in einem Modul in der IDL-Datei eine Schnittstelle enthalten ist, wird der Schnittstellenname im folgenden Format mit dem Namen des Moduls qualifiziert:

Modulname.Schnittstellenname.Operationsname

Das folgende Beispiel zeigt ein Modul in einer IDL-Datei:
Module one {
		Interface OneAInterface {
	};
};
Der vollständig qualifizierte Name der Schnittstelle 'OneAInterface' lautet one.OneAInterface. Die Module in einer IDL-Datei können in anderen Modulen verschachtelt sein. In diesem Fall kann der vollständig qualifizierte Name der Schnittstelle mehrere Modulnamen (beginnend vom Stammmodul) enthalten. Beispiel:

ModulnameA.ModulnameB.Schnittstellenname.Operationsname

Eine IDL-Datei kann mehrere Operationen mit gleichen Namen enthalten, solange sich die Operationen in verschiedenen Modulen befinden.
Bemerkungen | Marken | Downloads | Bibliothek | Support | Feedback

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

        
        Letzte Aktualisierung:
        
        Letzte Aktualisierung: 2015-02-28 16:22:28


KonzeptthemaKonzeptthema | Version 8.0.0.5 | bc22410_