Importando de C: Recursos Suportados

Esta seção descreve os padrões que o importador C utiliza ao mapear tipos de dados C para tipos de dados MRM.

A tabela a seguir mostra como as definições em C influenciam as definições do esquema XML no modelo de mensagem. Alguns tipos xsd possuem '-' depois do tipo. Isso indica que é um tipo simples anônimo baseado nesse tipo. Para cadeias, a finalidade do tipo anônimo é incluir uma restrição de comprimento; para tipos numéricos, a finalidade é incluir uma restrição de valor mínima e/ou máxima.

O tipo de dados na estrutura de dados compactada está fora do escopo do importador C.

Tipo de Dados C Tipo Lógico Notas
Char xsd:string - comprimento=1
Char[10] xsd:string- comprimento=10
Char[10][3] xsd:string - comprimento=3
Char[10][3][6] xsd:string - comprimento=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 (consulte a nota 1) xsd:double  
<qualquer tipo de objeto> xsd:hexBinary- comprimento=(consulte a nota 2)
<qualquer enum>   (consulte a nota 3)

A tabela a seguir mostra como as definições em C influenciam as características físicas de CWF dos elementos gerados no modelo da mensagem.

Tipo de Dados C Tipo Físico de CWF Características de Comprimento de CWF Outras Características de CWF
Char Comprimento Fixo Contagem de Comprimento = 1

Unidades de Comprimento = Bytes

 
Char[10] Comprimento Fixo Contagem de Comprimento = 10

Unidades de Comprimento = Bytes

Alinhamento à esquerda
Char[10][3] Comprimento Fixo Contagem de Comprimento = 3

(e Máx. de Ocorrências = 10)

Unidades de Comprimento = bytes

Alinhamento à esquerda
Char[10][3][6] Comprimento Fixo Contagem de Comprimento = 6

(e Máx. de Ocorrências = 30)

Unidades de Comprimento = bytes

Alinhamento à esquerda
Unsigned Char Inteiro Contagem de Comprimento = 1 Sinalizado = não
Unsigned Char[2] Inteiro Contagem de Comprimento = 1

(e Máx. de Ocorrências = 2)

Sinalizado = não
Signed Char Inteiro Contagem de Comprimento = 1 Sinalizado = sim
Signed Char[2] Inteiro Contagem de Comprimento = 1

(e Máx. de Ocorrências = 2)

Sinalizado = sim
Int Inteiro Contagem de Comprimento = 4 Sinalizado = sim
Int[2] Inteiro Contagem de Comprimento = 4

(e Máx. de Ocorrências = 2)

Sinalizado = sim
Int[2][3] Inteiro Contagem de Comprimento = 4

(e Máx. de Ocorrências = 6)

Sinalizado = sim
Unsigned Int Inteiro Contagem de Comprimento = 4 Sinalizado = não
Short Inteiro Contagem de Comprimento =2 Sinalizado = sim
Unsigned Short Inteiro Contagem de Comprimento =2 Sinalizado = não
Long Inteiro Contagem de Comprimento = 4 (consulte a nota 4) Sinalizado = sim
Long Long Int Inteiro Contagem de Comprimento = 8 Sinalizado = sim
Float Float Contagem de Comprimento = 4  
Double Float Contagem de Comprimento = 8  
Long Double (consulte a nota 1) Float Contagem de Comprimento = 8  
<qualquer tipo de ponteiro>   (consulte a nota 2)  
<qualquer enum> Inteiro (consulte a nota 3)  
Notas:
  1. Não defina o valor da opção do importador C size of long double como 128 bits. Ele não será importado com êxito. Utilize o padrão de 64 bits.
  2. A contagem de comprimento é afetada pela opção do importador C de Tamanho de Endereço da seguinte forma:
    • Para 32 bits, contagem do comprimento de CWF = 4 bytes.
    • Para 64 bits, contagem do comprimento de CWF = 8 bytes.
  3. O tipo e comprimento de um enum é afetado pela opção do importador C Tamanho de Enum, da seguinte forma:
    • Para 1: Tipo lógico = xsd:byte, Tipo físico de CWF = Inteiro, contagem do comprimento de CWF = 1 byte.
    • Para 2: Tipo lógico = xsd:short, Tipo físico de CWF = Inteiro, contagem do comprimento de CWF = 2 bytes.
    • Para 4: Tipo lógico = xsd:int, tipo físico de CWF = Inteiro, contagem do comprimento de CWF = 4 bytes.
    • Para Compact: É escolhida a menor representação na qual a enumeração se encaixa.
  4. O comprimento de um long é afetado pela opção do importador C do Tamanho do Endereço da seguinte forma:
    • Para 32 bits: contagem do comprimento de CWF = 4 bytes.
    • Para 64 bits: contagem do comprimento de CWF = 8 bytes.
  5. Os nomes de elementos conflitantes com as palavras-chave da linguagem Java são modificados prefixando-os com um único caractere de sublinhado.
  6. A palavra-chave _Packed não é suportada. Apenas declarações C ANSI são suportadas.
  7. O tipo de dados C long long não é suportado.
  8. As extensões orientadas a objetos C++ não são suportadas. Apenas declarações C ANSI são suportadas.
  9. Os ponteiros serão importados como xsd:integer com contagem de comprimento CWF definida como 4.
  10. As estruturas C recursivas não são suportadas. Se a estrutura aninhada contiver uma estrutura com um nome que é o mesmo que a estrutura pai, a importação é realizada mas as definições lógicas não estão corretas. Para evitar esse problema, assegure que o nome da estrutura aninhada não seja o mesmo que aquele da estrutura externa ou pai.
Conceitos relacionados
Modelagem de Mensagens
O Modelo de Mensagem
Tarefas relacionadas
Desenvolvendo Modelos de Mensagens
Trabalhando com um Arquivo de Definição de Mensagem
Trabalhando com Objetos de Modelo de Mensagem
Referências relacionadas
Informações de Referência do Modelo de Mensagens
Propriedades do Objeto de Modelo de Mensagem
Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback
Direitos Autorais IBM Corporation 1999, 2006 Última Atualização: 1 Sep 2006
ad06890_