WebSphere Message Broker, Versión 8.0.0.5 Sistemas operativos: AIX, HP-Itanium, Linux, Solaris, Windows, z/OS

Consulte la información sobre la última versión del producto en IBM Integration Bus, Versión 9.0

Tipos de datos IDL

Si utiliza el dominio DataObject con CORBA, debe saber cuál es la correspondencia entre el esquema XML y los tipos ESQL y los tipos del archivo IDL.

Tipos de IDL primitivos

La siguiente tabla muestra la correlación que existe entre los tipos IDL, los tipos simples de esquema XML y los tipos ESQL.
IDL esquema 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

Tipos IDL complejos

WebSphere Message Broker da soporte a los siguientes tipos IDL complejos:
  • Enumeraciones
  • Definiciones de tipo
  • Secuencias
  • Estructuras
Cada tipo complejo recibe soporte en estos lugares:
  • Tipos de retorno para operaciones
  • Parámetros In
  • Parámetrors Inout
  • Parámetros Out
  • Excepciones internas
  • Estructuras internas
  • Secuencias internas
  • Definiciones de tipo internas
Los siguientes ejemplos muestran la correlación entre los tipos IDL, el esquema XML y XML.
Enumeraciones
Las enumeraciones IDL se correlacionan con enumeraciones del esquema XML. Las enumeraciones del árbol son de tipo serie.
A continuación se muestra un archivo IDL de ejemplo:
enum myEnum {A, B, C};
interface example {
	void myoperation(in myEnum input1);
};
A continuación se muestra un esquema XML de ejemplo:
<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>
A continuación se muestra un ejemplo de XML:
<example.myoperation>
	<input1>A</input1>
</example.myoperation>
Secuencias y definiciones de tipo
Las definiciones de tipo IDL se correlacionan con restricciones de tipo de esquema XML. La secuencias IDL se correlacionan con tipos complejos de secuencias de esquemas XML. Las secuencias sólo pueden utilizarse en definiciones de tipo.
A continuación se muestra un archivo IDL de ejemplo:
Typedef long myLong; 
typedef sequence<long> longSeq; 
interface example { 	
	void myoperation(in longSeq input1, inout myLong input2); 
};  
A continuación se muestra un esquema XML de ejemplo:
<xsd:complexType name="longSeq"> 
		<xsd:sequence>
		<xsd:element name="item" minOccurs="0" maxOccurs="unbounded" type="xsd:int"/>
		</xsd:sequence>
</xsd.complexType>
Una secuencia puede estar enlazada con la secuencia de sintaxis <long, 10>, que coloca un enlace en el archivo XSD.
A continuación se muestra un ejemplo de XML:
<example.myoperation>
	<input1>
		<item>10</item>
		<item>11</item>
		<item>12</item>
	</input1>
</example.myoperation>
Estructuras
Las estructuras IDL se correlacionan con definiciones complexType de esquema XML.
A continuación se muestra un archivo IDL de ejemplo:
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);
};
A continuación se muestra un esquema XML de ejemplo:
<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>
A continuación se muestra un ejemplo de 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>

Módulos

En CORBA, los módulos proporcionan el ámbito. Si una interfaz está contenida en un módulo del archivo IDL, el nombre de interfaz se califica con el nombre de módulo en el formato siguiente:

ModuleName.InterfaceName.OperationName

El siguiente ejemplo muestra un módulo en un archivo IDL.
Module one {
	Interface OneAInterface {
	};
};
El nombre completo de la interfaz denominada OneAInterface es one.OneAInterface. En un archivo IDL, los módulos pueden anidarse en otros módulos. En este caso, el nombre completo de la interfaz puede incluir más de un nombre de módulo, a partir del módulo raíz; por ejemplo:

ModuleNameA.ModuleNameB.InterfaceName.OperationName

Un archivo IDL puede contener más de una operación con el mismo nombre siempre y cuando las operaciones estén en módulos diferentes.
Avisos | Marcas registradas | Descargas | Biblioteca | Soporte | Comentarios

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

        
        Última actualización:
        
        Última actualización: 2015-02-28 17:00:50


Tema de conceptoTema de concepto | Versión 8.0.0.5 | bc22410_