El analizador XMLNSC establece el tipo
de campo en cada elemento de sintaxis que crea.
El tipo de campo indica el tipo de construcción XML que
el elemento representa. El analizador XMLNSC utiliza el tipo de campo
cuando graba un árbol de mensaje. El tipo de campo se puede establecer
utilizando ESQL o Java™ para
controlar el XML de salida. Los tipos de campo que utiliza el analizador
XMLNSC deben referenciarse utilizando constantes con nombres cuyo prefijo
sea 'XMLNSC'.
Consejo: Las constantes de
tipo de campo que tienen el prefijo 'XML' sólo sirven para los analizadores XMLNS y XML, pero no son válidos con los analizadores XMLNSC o MRM.
Tipos de campos para crear elementos de sintaxis
Utilice las siguientes constantes de tipo de campo para crear elementos de sintaxis en el árbol de mensajes. El analizador XMLNSC utiliza estos valores cuando se crea un árbol de mensajes desde un mensaje de entrada.
Construcción XML |
Constante de tipo de campo XMLNSC |
Valor |
Elemento simple
|
XMLNSC.Field
XMLNSC.CDataField
|
0x03000000
0x03000001
|
Atributo
|
XMLNSC.SingleAttribute
XMLNSC.Attribute
|
0x03000101
0x03000100
|
Contenido mixto
|
XMLNSC.Value
XMLNSC.CDataValue
|
0x02000000
0x02000001
|
Declaración de espacio de nombres
|
XMLNSC.SingleNamespaceDecl
XMLNSC.NamespaceDecl
|
0x03000102
0x03000103
|
Elemento complejo
|
XMLNSC.Folder
|
0x01000000
|
DTD incorporada
|
XMLNSC.DocumentType
|
0x01000300
|
Declaración XML
|
XMLNSC.XmlDeclaration
|
0x01000400
|
Referencia de entidad
|
XMLNSC.EntityReference
|
0x02000100
|
Definición de entidad
|
XMLNSC.SingleEntityDefinition
XMLNSC.EntityDefinition
|
0x03000301
0x03000300
|
Comentario
|
XMLNSC.Comment
|
0x03000400
|
Instrucción de proceso
|
XMLNSC.ProcessingInstruction
|
0x03000401
|
Tipos de campos para las expresiones de vía de acceso ( tipos de campo genéricos )
Utilice las constantes de tipo de campo que se listan a continuación cuando
consulte el árbol de mensajes utilizando una expresión de vía de acceso; por
ejemplo:
SET str = FIELDVALUE(InputRoot.e1.(XMLNSC.Attribute)attr1)
Un buen ejercicio es especificar tipos de campos cuando se consulta un árbol de mensajes construido por el analizador XMLNSC. Esto hace que el código ESQL sea más específico y más legible, y evita resultados incorrectos en algunos casos.
Sin embargo, hay que ser precavido cuando se elija la constante de tipo de campo que desea utilizar. Cuando utilice el analizador XMLNSC, utilice una constante de tipo de campo genérico cuando consulte el árbol de mensajes. Esto permite que la expresión de vía de acceso tolere variaciones en el XML de entrada.
Las constantes de tipo de campo genérico se listan en la siguiente tabla:
Construcción XML |
Constante de tipo de campo XMLNSC |
Finalidad |
Código |
XMLNSC.Element |
Coincide con cualquier código, siempre que contenga códigos hijo (XMLNSC.Folder) o un valor (XMLNSC.Field ) |
Elemento |
XMLNSC.Field |
Coincide con un código que contenga texto normal, CData o una combinación de ambos. No coincide con códigos que contengan códigos hijo. |
Atributo |
XMLNSC.Attribute |
Coincide con atributos de una sola comilla y de comillas dobles |
Contenido mixto |
XMLNSC.Value |
Coincide con texto normal, CData o una combinación de ambos |
Declaración XML |
XMLNSC.NamespaceDecl |
Coincide con declaraciones de comilla simple y doble |
Si escribe
InputRoot.e1.(XMLNSC.DoubleAttribute)attrName
la expresión de vía de acceso no coincide con el atributo de una comilla. Si utiliza la constante de tipo de campo genérico
XMLNSC.Attribute, el flujo de mensajes con atributos de comilla simple o comilla doble.
Tenga en cuenta que siempre debe utilizar las constantes de tipo de campo y no los valores numéricos.
Tipos de campos para controlar el formato de salida
Los tipos de campos siguientes se proporcionan para el soporte de Esquema XML y base64.
No utilice estas constantes de tipo de campo en las expresiones de vía de acceso; utilícelas junto con XMLNSC.Attribute y XMLNSC.Field para indicar el formato de salida necesario para los valores DATE y BLOB. Consulte
XMLNSC: Soporte para el esquema XML para obtener más información.
Constante de tipo de campo XMLNSC |
Finalidad |
Valor |
XMLNSC.gYear |
El valor debe ser una fecha (DATE). Si el tipo de campo incluye este valor, el valor DATE se genera utilizando el formato gYear del Esquema XML. |
0x00000010 |
XMLNSC.gYearMonth |
El valor debe ser una fecha (DATE). Si el tipo de campo incluye este valor, el valor DATE se genera utilizando el formato gYearMonth del Esquema XML. |
0x00000040 |
XMLNSC.gMonth |
El valor debe ser una fecha (DATE). Si el tipo de campo incluye este valor, el valor DATE se genera utilizando el formato gMonth del Esquema XML. |
0x00000020 |
XMLNSC.gMonthDay |
El valor debe ser una fecha (DATE). Si el tipo de campo incluye este valor, el valor DATE se genera utilizando el formato gMonthDay del Esquema XML. |
0x00000050 |
XMLNSC.gDay |
El valor debe ser una fecha (DATE). Si el tipo de campo incluye este valor, el valor DATE se genera utilizando el formato gDay del Esquema XML. |
0x00000030 |
XMLNSC.base64Binary |
El valor debe ser un BLOB. El valor se genera con la codificación base64. |
0x00000060 |
XMLNSC.List |
El elemento debe ser XMLNSC.Attribute o XMLNSC.Field.
Si el tipo de campo incluye este valor, los valores de todos los elementos hijo en el árbol de mensajes se generan como una lista separada por espacios. |
0x00000070 |
Tipos de campos para la salida directa
Utilices los tipos de campo siguientes para generar segmentos creados previamente de un documento XML.
No se realiza el escape de caracteres; por consiguiente, tenga un cuidado especial en no construir un documento de salida con formato incorrecto. Utilice estas constantes únicamente después de explorar cuidadosamente las soluciones alternativas.
Constante de tipo de campo XMLNSC |
Finalidad |
Valor |
XMLNSC.Bitstream |
El valor de este elemento de sintaxis debe ser un BLOB.
El valor se graba directamente en la corriente de bits de salida. Para obtener más información sobre su uso, consulte Cómo trabajar con mensajes XML grandes. |
0x03000200 |
XMLNSC.AsisElementContent |
El valor de este elemento de sintaxis debe ser CHARACTER.
El valor se graba directamente en la corriente de bits de salida. No se realiza ninguna sustitución de caracteres. Utilice este elemento con cuidado. |
0x03000600 |