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) |