cniCreateElementAsLastChildFromBitstream

Crea un nuevo árbol de elementos de sintaxis como el último hijo del elemento de sintaxis especificado y lo asocia con el analizador especificado. El nuevo árbol de elementos de sintaxis se llena analizando la corriente de bits especificada. Durante la ejecución de esta función, se copia la corriente de bits, de modo que el canal de llamada puede liberar o reutilizar la memoria asignada para contener la corriente de bits original. Sólo puede utilizar esta función para crear un cuerpo de mensaje, es decir, el último hijo de la raíz del mensaje. Ya debe existir un mensaje de salida. El elemento raíz de este mensaje de salida se deberá pasar como parámetro de elemento de destino. Dado que esta llamada sólo está destinada a utilizarse para crear un cuerpo de mensaje, no puede utilizarla para crear elementos sucesivos. Por ejemplo, no se deberá utilizar para crear un RFH2 como último hijo de la raíz y, a continuación, un mensaje XML como último hijo de la raíz, después de 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 tratar los errores. Si la entrada no es NULL, la salida significa el estado de éxito de la llamada. Las excepciones emitidas durante la ejecución de esta llamada se vuelven a emitir en el nodo ascendente siguiente del flujo. Invoque cciGetLastExceptionData para obtener información detallada de la excepción.
Los códigos de retorno posibles son:
  • CCI_SUCCESS
  • CCI_EXCEPTION
  • CCI_INV_ELEMENT_OBJECT
  • CCI_INV_PARSER_NAME
  • CCI_INV_DATA_POINTER
targetElement
Elemento de sintaxis bajo el que se crea el árbol de elementos de sintaxis nuevo (entrada). Debe ser la raíz del mensaje.
parserClassName
Nombre de la clase de analizador a utilizar para analizar la corriente de bits (entrada). Deberá utilizar el mismo analizador que se ha utilizado para analizar la corriente de bits completa.
value
Puntero a una estructura CciByteArray que contiene un puntero a la corriente de bits que se debe 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 ignora este parámetro. Asimismo, si el analizador especificado no tiene ningún interés en este valor, por ejemplo si es un analizador XML genérico, se ignora 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 ignora este parámetro. Asimismo, si el analizador especificado no tiene ningún interés en este valor, por ejemplo si es un analizador XML genérico, se ignora el parámetro.
messageFormat
Formato utilizado para crear el árbol de elementos desde la corriente de bits (entrada). Un puntero NULL significa que se ignora este parámetro. Asimismo, si el analizador especificado no tiene ningún interés en este valor, por ejemplo si es un analizador XML genérico, se ignora el parámetro.
encoding
Codificación a utilizar cuando se analiza la corriente de bits (entrada). Este parámetro es obligatorio. Puede especificar un valor de 0 para indicar que se debe utilizar la codificación del gestor de colas.
ccsid
Identificador de juego de caracteres codificado a utilizar cuando se analiza la corriente de bits (entrada). Este parámetro es obligatorio. Puede especificar un valor de 0 para indicar que se debe utilizar el ccsid del gestor de colas.
options
Inicio del cambioReservado para un uso posterior. Debe especificar el valor 0 para mantener la compatibilidad con versiones posteriores.Fin del cambio

Valores de retorno

Si la ejecución se realiza satisfactoriamente, se devuelve la dirección del objeto de elemento nuevo. De lo contrario, se devuelve un valor cero (CCI_NULL_ADDR) y el parámetro de código de retorno indica la razón 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;
}
Avisos | Marcas registradas | Descargas | Biblioteca | Soporte | Su opinión
Copyright IBM Corporation 1999, 2006 Última actualización: 22/08/2006
as07865_