Importando de C: Recursos Suportados

Esta seção descreve as falhas que o importador C utiliza ao mapear os tipos de dados C para os elementos do modelo de mensagem.

A tabela a seguir mostra como as definições C influenciam as configuraçõ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 máximo; para tipos numéricos, a finalidade do tipo anônimo é incluir uma restrição de valor mínimo ou máximo.

Tipo de Dados C Dados do Esquema XML Notas
Char xsd:string - maxlength=1
Char[10] xsd:string- maxlength=10
Char[10][3] xsd:string - maxlength=3
Char[10][3][6] xsd:string - maxlength=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 ponteiro> xsd:hexBinary- maxlength=(consulte a nota 2)
<qualquer enum>   (consulte a nota 3)

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

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

Unidades de Comprimento = Bytes

 
Char[10] Comprimento Fixo Comprimento = 10

Unidades de Comprimento = Bytes

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

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

Unidades de Comprimento = bytes

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

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

Unidades de Comprimento = bytes

Alinhamento à esquerda
Unsigned Char Número Inteiro Comprimento = 1 Sinalizado = não
Unsigned Char[2] Número Inteiro Comprimento = 1

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

Sinalizado = não
Signed Char Número Inteiro Comprimento = 1 Sinalizado = sim
Signed Char[2] Número Inteiro Comprimento = 1

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

Sinalizado = sim
Int Número Inteiro Comprimento = 4 Sinalizado = sim
Int[2] Número Inteiro Comprimento = 4

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

Sinalizado = sim
Int[2][3] Número Inteiro Comprimento = 4

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

Sinalizado = sim
Unsigned Int Número Inteiro Comprimento = 4 Sinalizado = não
Short Número Inteiro Comprimento = 2 Sinalizado = sim
Unsigned Short Número Inteiro Comprimento = 2 Sinalizado = não
Long Número Inteiro Comprimento = 4 (consulte a nota 4) Sinalizado = sim
Long Long Int Número Inteiro Comprimento = 8 Sinalizado = sim
Float Float Comprimento = 4  
Double Float Comprimento = 8  
Long Double (consulte a nota 1) Float Comprimento = 8  
<qualquer tipo de ponteiro>   (consulte a nota 2)  
<qualquer enum> Número 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. O comprimento é afetado pela opção do importador C Tamanho do Endereço da seguinte forma:
    • Para 32 bits, comprimento de CWF = 4 bytes.
    • Para 64 bits, 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 = Número Inteiro, Comprimento de CWF = 1 byte.
    • Para 2: Tipo lógico = xsd:short, Tipo físico de CWF = Número Inteiro, Comprimento de CWF = 2 bytes.
    • Para 4: Tipo lógico = xsd:int, Tipo físico de CWF = Número Inteiro, 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: comprimento de CWF = 4 bytes.
    • Para 64 bits: 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 comprimento de CWF configurado para 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

Copyright IBM Corporation 1999, 2009Copyright IBM Corporation 1999, 2009.
Última atualização : 2009-02-13 16:12:03

ad06890_