IDL data types
When you use the DataObject domain with CORBA, you need to know how XML schema and ESQL types correspond to the types in the IDL file.
Primitive IDL types
The following table
shows the mapping between IDL types, XML schema simple types, and
ESQL types.
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 |
Complex IDL types
IBM® App Connect Enterprise supports the following complex
IDL types:
- Enums
- Typedefs
- Sequences
- Structures
- Return types for operations
- In parameters
- Inout parameters
- Out parameters
- Inside exceptions
- Inside structures
- Inside sequences
- Inside typedefs
Modules
In CORBA, modules provide scope.
If an interface is contained in a module in the IDL file, the interface
name is qualified with the module name in the following format:
ModuleName.InterfaceName.OperationName
The
following example shows a module in an IDL file.Module one {
Interface OneAInterface {
};
};
The fully qualified name of the interface called OneAInterface
is one.OneAInterface
. In an IDL file, modules can
be nested in other modules. In this case, the fully qualified name
of the interface can include more than one module name, starting from
the root module; for example:ModuleNameA.ModuleNameB.InterfaceName.OperationName
An
IDL file can contain more than one operation with the same name provided
that the operations are in different modules.