O analisador XMLNSC configura o tipo de campo em cada elemento de sintaxe que cria.
O tipo de campo indica o tipo de construção XML que o elemento representa. O analisador XMLNSC utiliza o tipo de campo ao gravar uma árvore de mensagens. O tipo de campo pode ser configurado usando ESQL ou
Java™ para controlar o XML de saída.
Os tipos de campos usados pelo analisador
XMLNSC devem ser referidos usando constantes com nomes prefixados
por 'XMLNSC.'
Dica: Constantes de tipo de campo que
possuem o prefixo 'XML'. devem ser usadas apenas com os analisadores XMLNS e XML
e não são válidas com os analisadores XMLNSC ou MRM.
Tipos de Campos para Criar Elementos de Sintaxe
Utilize as constantes de tipo de campo a seguir para criar elementos de sintaxe na árvore de mensagens. O analisador XMLNSC utiliza esses valores ao criar uma árvore de mensagens a partir de uma mensagem de entrada.
Construção de XML |
Constante Tipo de Campo XMLNSC |
Valor |
Elemento Simples
|
XMLNSC.Field
XMLNSC.CDataField
|
0x03000000
0x03000001
|
Atributo
|
XMLNSC.SingleAttribute
XMLNSC.Attribute
|
0x03000101
0x03000100
|
Conteúdo misto
|
XMLNSC.Value
XMLNSC.CDataValue
|
0x02000000
0x02000001
|
Declaração de Espaço de Nomes
|
XMLNSC.SingleNamespaceDecl
XMLNSC.NamespaceDecl
|
0x03000102
0x03000103
|
Elemento Complexo
|
XMLNSC.Folder
|
0x01000000
|
DTD seqüencial
|
XMLNSC.DocumentType
|
0x01000300
|
declaração XML
|
XMLNSC.XmlDeclaration
|
0x01000400
|
Referência de entidade
|
XMLNSC.EntityReference
|
0x02000100
|
Definição de entidade
|
XMLNSC.SingleEntityDefinition
XMLNSC.EntityDefinition
|
0x03000301
0x03000300
|
Comentário
|
XMLNSC.Comment
|
0x03000400
|
Instrução de Processamento
|
XMLNSC.ProcessingInstruction
|
0x03000401
|
Tipos de campo para expressões de caminho (tipos de campos genéricos)
Use as seguintes constantes de tipo de campo ao consultar a
árvore de mensagens usando uma expressão de caminho; por exemplo:
SET str = FIELDVALUE(InputRoot.e1.(XMLNSC.Attribute)attr1)
É boa prática especificar tipos de campos ao consultar uma árvore de mensagens construída pelo analisador XMLNSC. Isso torna seu código ESQL mais específico e mais legível e evita resultados incorretos em alguns casos.
No entanto, é necessário tomar cuidado ao escolher qual constante de tipo de campo utilizar. Ao utilizar o analisador XMLNSC, utilize uma constante de tipo de campo genérico ao consultar a árvore de mensagens. Isso permite que sua expressão de caminho tolere variações no XML de entrada.
As constantes de tipo de campo genéricas
são listadas na tabela a seguir:
Construção de XML |
Constante Tipo de Campo XMLNSC |
Propósito |
Tag |
XMLNSC.Element |
Corresponde a qualquer tag, caso contenha tags filhas
(XMLNSC.Folder) ou um valor (XMLNSC.Field) |
Elemento |
XMLNSC.Field |
Corresponde a uma tag que contém texto
normal, CData ou uma mistura de ambos. Não corresponde a tags que contêm
tags filhas. |
Atributo |
XMLNSC.Attribute |
Corresponde a atributos de aspas simples e aspas duplas |
Conteúdo misto |
XMLNSC.Value |
Corresponde a texto normal, CData ou a uma mistura de ambos |
Declaração XML |
XMLNSC.NamespaceDecl |
Corresponde a declarações de aspas simples e duplas |
Se você escrever
InputRoot.e1.(XMLNSC.DoubleAttribute)attrName
sua expressão de caminho não corresponde a um atributo de aspas simples. Se você utilizar a constante de tipo de campo genérico
XMLNSC.Attribute, seu fluxo de mensagens funciona com atributos de aspas simples ou aspas duplas.
Observe que você deve sempre utilizar constantes de tipo de campo não seus valores numéricos.
Tipos de Campos para Controlar Formato de Saída
Os tipos de campos a seguir são fornecidos para suporte a Esquema XML e base64.
Não utilize essas constantes de tipo de campo em expressões de caminho; utilize-as em conjunto com XMLNSC.Attribute
e XMLNSC.Field para indicar o formato de saída necessário para os valores DATE e BLOB. Consulte
XMLNSC: Suporte a Esquema XML para obter informações adicionais.
Constante Tipo de Campo XMLNSC |
Propósito |
Valor |
XMLNSC.gYear |
O valor deve ser DATE. Se o tipo de campo incluir
este valor, o valor DATE será produzido usando o formato
gYear do Esquema XML. |
0x00000010 |
XMLNSC.gYearMonth |
O valor deve ser DATE. Se o tipo de campo incluir
este valor, o valor DATE será produzido usando o formato
gYearMonth do Esquema XML. |
0x00000040 |
XMLNSC.gMonth |
O valor deve ser DATE. Se o tipo de campo incluir
este valor, o valor DATE será produzido usando o formato
gMonth do Esquema XML. |
0x00000020 |
XMLNSC.gMonthDay |
O valor deve ser DATE. Se o tipo de campo incluir
este valor, o valor DATE será produzido usando o formato
gMonthDay do Esquema XML. |
0x00000050 |
XMLNSC.gDay |
O valor deve ser DATE. Se o tipo de campo incluir
este valor, o valor DATE será produzido usando o formato
gDay do Esquema XML. |
0x00000030 |
XMLNSC.base64Binary |
O valor deve ser um BLOB. O valor é produzido
com a codificação base64. |
0x00000060 |
XMLNSC.List |
O elemento deve ser XMLNSC.Attribute ou XMLNSC.Field.
Se o tipo de campo incluir este valor, os valores de todos os elementos filhos
na árvore de mensagens serão produzidos como uma lista separada por espaço. |
0x00000070 |
Tipos de Campos para Saída Direta
Use os seguintes tipos de campos
para produzir segmentos pré-construídos de um documento XML.
A codificação de caracteres com a função escape não é feita; portanto, tenha muito cuidado
para não construir um documento de saída malformado. Use estas constantes apenas
depois de explorar cuidadosamente as soluções alternativas.
Constante Tipo de Campo XMLNSC |
Propósito |
Valor |
XMLNSC.Bitstream |
O valor deste elemento da sintaxe deve ser um BLOB.
O valor é gravado diretamente no fluxo de bits de saída. Para obter informações adicionais
sobre seu uso, consulte Trabalhando com Mensagens XML Grandes. |
0x03000200 |
XMLNSC.AsisElementContent |
O valor deste elemento da sintaxe deve ser CHARACTER.
O valor é gravado diretamente no fluxo de bits de saída. Não são executadas substituições de caracteres. Use este elemento com cuidado. |
0x03000600 |