cniCreateElementAsLastChildFromBitstream

Esta función crea un nuevo árbol de elementos de sintaxis como último elemento dependiente del elemento de sintaxis especificado, y lo asocia con el analizador especificado. El nuevo árbol de elementos de sintaxis se llena mediante el análisis de la corriente de bits especificada. Durante la ejecución de esta función, se copia la corriente de bits para que el canal de llamada pueda liberar o reutilizar la memoria asignada para retener la corriente de bits original. Sólo puede utilizar esta función para crear un cuerpo de mensaje, es decir, el último elemento dependiente de la raíz del mensaje. Deberá existir ya un mensaje de salida. El elemento raíz de este mensaje de salida deberá pasarse como parámetro de elemento de destino. Puesto que esta llamada sólo está diseñada para crear un cuerpo de mensaje, el usuario no podrá utilizarla para crear elementos sucesivos. Por ejemplo, no debe utilizarse para crear un elemento RFH2 como último elemento dependiente de la raíz y, a continuación, un mensaje XML como último elemento dependiente de la raíz, después de haber creado el elemento RFH2.

Sintaxis

CciElement* cniCreateElementAsLastChildFromBitstream (
  int*                       returnCode,
  CciElement*                targetElement,
  const struct CciByteArray* value,
  const CciChar*             parserClassName,
  CciChar*                   messageType,
  CciChar*                   messageSet,
  CciChar*                   messageFormat,
  int                        encoding,
  int                        ccsid,
  int                        options);

Parámetros

returnCode
Código de retorno de la función (salida). La especificación de un puntero NULL, significa que el nodo no desea gestionar errores. Si la entrada no es NULL, la salida indica que el estado de la llamada es correcto. Las excepciones emitidas durante la ejecución de esta llamada vuelven a emitirse en el siguiente nodo en sentido ascendente del flujo. Invoque cciGetLastExceptionData para obtener información detallada de la excepción.
targetElement
Elemento de sintaxis en el que se crea el nuevo árbol de elementos de sintaxis (entrada). Debe ser la raíz del mensaje.
parserClassName
Nombre de la clase de analizador que se va a utilizar para analizar la corriente de bits (entrada). Debe utilizar el mismo analizador que se utilizó al analizar la corriente de bits completa.
value
Puntero a una estructura CciByteArray que contiene un puntero a la corriente de bits que se va a analizar, y también el tamaño en CciBytes de esta corriente de bits (salida).
messageType
Definición de tipo de mensaje utilizada para crear el árbol de elementos desde la corriente de bits (entrada). Un puntero NULL significa que se omite este parámetro. Además, si el analizador especificado no tiene interés en este valor, por ejemplo, si es un analizador XML genérico, se omite el parámetro.
messageSet
Definición de conjunto de mensajes utilizada para crear el árbol de elementos desde la corriente de bits (entrada). Un puntero NULL significa que se omite este parámetro. Además, si el analizador especificado no tiene interés en este valor, por ejemplo, si es un analizador XML genérico, se omite el parámetro.
messageFormat
Formato utilizado para crear el árbol de elementos desde la corriente de bits (entrada). Un puntero NULL significa que se omite este parámetro. Además, si el analizador especificado no tiene interés en este valor, por ejemplo, si es un analizador XML genérico, se omite el parámetro.
encoding
Codificación utilizada al analizar la corriente de bits (entrada). Este parámetro es obligatorio. Puede especificar el valor 0 para indicar que debe utilizarse la codificación del gestor de colas.
ccsid
Identificador de juego de caracteres codificado que se utiliza al analizar la corriente de bits (entrada). Este parámetro es obligatorio. Puede especificar el valor 0 para indicar que debe utilizarse el ccsid del gestor de colas.
options
Marcador de posición que permite el soporte de validación de mensajes en una fecha posterior (entrada).

Valores de retorno

Si la función se ejecuta correctamente, se devuelve la dirección del nuevo objeto de elemento. De lo contrario, se devuelve el valor cero (CCI_NULL_ADDR), y el parámetro de código de retorno indica la causa del error. Si se produce una excepción durante la ejecución, returnCode se establece en CCI_EXCEPTION.

Ejemplo

  outMQMD = cniCreateElementAsFirstChildUsingParser(&rc,
                                                outRootElement,
                                                CciString("MQHMD",BIP_DEF_COMP_CCSID));
  checkRC(rc);

  cniCopyElementTree(&rc, inMQMD, outMQMD);
  checkRC(rc);
  
  outBlobRoot = cniCreateElementAsLastChildFromBitstream(
                                                   &rc,
                                                   outRootElement,
                                                   &bitstream,
                                                   inParserClassName,
                                                   messageType,
                                                   messageSet,
                                                   messageFormat,
                                                   encoding,
                                                   ccsid,
                                                   0);
    

  
  checkRC(rc);
  ...

  return;
}

Conceptos relacionados
Nodos de proceso de mensajes definidos por el usuario
Nodos de salida definidos por el usuario

Tareas relacionadas
Creación de un nodo de proceso de mensajes en C

Referencia relacionada
cciGetLastExceptionData
cniCreateElementAsFirstChild
cniCreateElementAsFirstChildUsingParser
cniCreateElementAsLastChild
cniCreateElementAsLastChildUsingParser