Importación desde C: características soportadas

En esta sección se describen los valores por omisión que utiliza el importador C cuando se correlacionan tipos de datos C en tipos de datos MRM.

La tabla siguiente muestra cómo las definiciones C tienen su influencia en los valores del esquema XML en el modelo de mensaje. Tenga en cuenta que algunos tipos xsd tienen un guión, "-", después del tipo. Esto indica que se trata de un tipo simple anónimo basado en este tipo. Para las cadenas de caracteres, la finalidad del tipo anónimo es añadir una restricción de longitud, para los tipos numéricos la finalidad es añadir una restricción de valor mínimo y/o máximo.

Los siguientes tipos de datos están fuera del ámbito del importador C:

Tipo de datos C Tipo lógico Notas
Char xsd:string- length=1
Char[10] xsd:string- length=10
Char[10][3] xsd:string- length=3
Char[10][3][6] xsd:string- length=6
Unsigned Char xsd:unsignedByte  
Unsigned Char[2] xsd:unsignedByte  
Signed Char xsd:byte  
Signed Char[2] xsd:byte  
Int xsd:int  
Int[2] xsd:int  
Int[2][3] xsd:int  
Unsigned Int xsd:unsignedInt  
Short xsd:short  
Unsigned Short xsd:unsignedShort  
Long xsd:int  
Long Long Int xsd:long  
Float xsd:float  
Double xsd:double  
Long Double (vea la nota 1) xsd:double  
<cualquier tipo de puntero> xsd:hexBinary- length=(see note 2)
<cualquier enumeración>   (vea la nota 3)

La tabla siguiente muestra cómo las definiciones C pueden tener su influencia en las características CWF físicas de los elementos generados en el modelo de mensaje.

Tipo de datos C Tipo físico CWF Características de longitud CWF Otras características CWF
Char Longitud fija Cuenta de longitud = 1

Unidades de longitud = Bytes

 
Char[10] Longitud fija Cuenta de longitud = 10

Unidades de longitud = Bytes

Justificado por la izquierda
Char[10][3] Longitud fija Cuenta de longitud = 3

Cuenta de repeticiones = 10

Unidades de longitud = bytes

Justificado por la izquierda
Char[10][3][6] Longitud fija Cuenta de longitud = 6

Cuenta de repeticiones = 30

Unidades de longitud = bytes

Justificado por la izquierda
Unsigned Char Entero Cuenta de longitud = 1 Con signo = no
Unsigned Char[2] Entero Cuenta de longitud = 1

Cuenta de repeticiones = 2

Con signo = no
Signed Char Entero Cuenta de longitud = 1 Con signo = sí
Signed Char[2] Entero Cuenta de longitud = 1

Cuenta de repeticiones = 2

Con signo = sí
Int Entero Cuenta de longitud = 4 Con signo = sí
Int[2] Entero Cuenta de longitud = 4

Cuenta de repeticiones = 2

Con signo = sí
Int[2][3] Entero Cuenta de longitud = 4

Cuenta de repeticiones = 6

Con signo = sí
Unsigned Int Entero Cuenta de longitud = 4 Con signo = no
Short Entero Cuenta de longitud = 2 Con signo = sí
Unsigned Short Entero Cuenta de longitud = 2 Con signo = no
Long Entero Cuenta de longitud = 4 (vea la nota 4) Con signo = sí
Long Long Int Entero Cuenta de longitud = 8 Con signo = sí
Float Flotante Cuenta de longitud = 4  
Double Flotante Cuenta de longitud = 8  
Long Double (vea la nota 1) Flotante Cuenta de longitud = 8  
<cualquier tipo de puntero>   (vea la nota 2)  
<cualquier enumeración> Entero (vea la nota 3)  
Notes:
  1. No establezca el valor de la opción del importador C Tamaño de largo doble en 128 bits. De este modo, la importación no se realizará correctamente. Utilice el valor por omisión de 64 bits.
  2. La cuenta de longitud resulta afectada por la opción del importador C Tamaño de direcciones, del modo siguiente:
    • Para 32 bits, la Cuenta de longitud CWF = 4 bytes.
    • Para 64 bits, la Cuenta de longitud CWF = 8 bytes.
  3. El tipo y la longitud de una enumeración resulta afectada por la opción del importador C */*Tamaño de la enumeración como se indica a continuación:
    • Para 1: Tipo lógico = xsd:byte, Tipo físico CWF = Entero, Cuenta de longitud CWF = 1 byte.
    • Para 2: Tipo lógico = xsd:short, Tipo físico CWF = Entero, Cuenta de longitud CWF = 2 bytes.
    • Para 4: Tipo lógico = xsd:int, Tipo físico CWF = Entero, Cuenta de longitud CWF = 4 bytes.
    • Para Compacto: se selecciona la representación más pequeña en la que entra esta enumeración.
  4. El valor de long resulta afectado por la opción del importador C Tamaño de direcciones del modo siguiente:
    • Para 32 bits: Cuenta de longitud CWF = 4 bytes.
    • Para 64 bits: Cuenta de longitud CWF = 8 bytes.
  5. Los nombres de los elementos que coincidan con las palabras clave del lenguaje Java se modifican añadiendo al nombre del elemento un prefijo con un solo carácter de subrayado.
  6. La palabra clave _Packed no está soportada. Solamente se da soporte a las declaraciones C en ANSI.
  7. El tipo de datos C long long no está soportado.
  8. Las extensiones orientadas a objetos C++ no están soportadas. Solamente se da soporte a las declaraciones C en ANSI.
  9. Los punteros se importarán como xsd:integer con la cuenta de longitud CWF establecida en 4.
  10. Las estructuras C recursivas no están soportadas. Si una estructura anidada contiene una estructura anidada con un nombre igual al de la estructura padre la importación se realiza correctamente pero las definiciones lógicas no son correctas. Para evitar este problema, asegúrese de que el nombre de la estructura anidada no sea igual al de la estructura externa o padre.

Conceptos relacionados
Diseño de mensajes
El modelo de mensaje

Tareas relacionadas
Desarrollo de modelos de mensajes
Trabajar con un archivo de definición de mensajes
Trabajo con los objetos del modelo de mensajes

Referencia relacionada
Información de referencia del modelo de mensaje
Propiedades del objeto del modelo de mensaje