cniCreateElementAsLastChildFromBitstream

Cria uma nova árvore de elementos de sintaxe como o último filho do elemento de sintaxe especificado, e a associa ao analisador especificado. A nova árvore de elementos de sintaxe é ocupada, analisando o fluxo de bits especificado. Durante a execução desta função, o fluxo de bits é copiado, e portanto o responsável pela chamada pode liberar ou reutilizar a memória alocada para conter o fluxo de bits original. Essa função pode ser utilizada somente para criar um corpo de mensagem, ou seja, o último filho da raiz da mensagem. Uma mensagem de saída deve existir sempre. O elemento raiz dessa mensagem de saída deve ser transmitido como o parâmetro do elemento de destino. Como essa chamada é projetada somente para ser utilizada para criar um corpo de mensagem, ela não pode ser utilizada para construir elementos sucessivos. Por exemplo, não deveria ser utilizada para criar um RFH2 como o último filho da raiz e depois uma mensagem XML como o último filho da raiz, após o RFH2.

Sintaxe

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
O código de retorno da função (saída). Especificar um ponteiro NULL significa que o nó não deseja lidar com erros. Se a entrada não for NULL, a saída significa o status de êxito da chamada. Quaisquer exceções lançadas durante a execução desta chamada serão lançadas novamente para o próximo nó acima no fluxo. Chame cciGetLastExceptionData para obter detalhes da exceção.
targetElement
O elemento de sintaxe sob o qual a nova árvore de elementos de sintaxe é criada (entrada). Esse deve ser a raiz da mensagem.
parserClassName
O nome da classe do analisador a ser utilizada para analisar o fluxo de bits (entrada). É preciso utilizar o mesmo analisador que foi utilizado para analisar o fluxo de bits inteiro.
value
Um ponteiro para uma estrutura CciByteArray contendo um ponteiro para o fluxo de bits a ser analisado e também o tamanho em CciBytes desse fluxo de bits (saída).
messageType
A definição de tipo de mensagem utilizada para criar a árvore de elementos a partir do fluxo de bits (entrada). Um ponteiro NULL significa que este parâmetro é ignorado. Além disso, se o analisador especificado não tiver interesse neste valor, por exemplo, se ele for um analisador XML genérico, o parâmetro é ignorado.
messageSet
A definição de conjunto de mensagem utilizada para criar a árvore de elementos a partir do fluxo de bits (entrada). Um ponteiro NULL significa que este parâmetro é ignorado. Além disso, se o analisador especificado não tiver interesse neste valor, por exemplo, se ele for um analisador XML genérico, o parâmetro é ignorado.
messageFormat
O formato utilizado para criar a árvore de elementos a partir do fluxo de bits (entrada). Um ponteiro NULL significa que este parâmetro é ignorado. Além disso, se o analisador especificado não tiver interesse neste valor, por exemplo, se ele for um analisador XML genérico, o parâmetro é ignorado.
encoding
A codificação a ser utilizada ao analisar o fluxo de bits (entrada). Esse parâmetro é obrigatório. Você pode especificar um valor de 0 para indicar que a codificação do gerenciador de filas deve ser utilizada.
ccsid
O identificador do conjunto de caracteres codificado a ser utilizado ao analisar o fluxo de bits (entrada). Esse parâmetro é obrigatório. Você pode especificar um valor de 0 para indicar que o ccsid do gerenciador de filas deve ser utilizado.
options
Esse é um marcador para permitir suporte a validação de mensagens no futuro (entrada).

Valores de Retorno

Se for bem-sucedido, o endereço do novo objeto de elemento é retornado. Caso contrário um valor de zero (CCI_NULL_ADDR) é retornado e o parâmetro de código de retorno indica a razão do erro. Se uma exceção ocorrer durante a execução, returnCode é definido como CCI_EXCEPTION.

Exemplo

  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;
}

Conceitos relacionados
Nós de Processamento de Mensagem Definidos pelo Usuário
Nós de Saída Definidos pelo Usuário

Tarefas relacionadas
Criando um Nó de Processamento de Mensagem em C

Referências relacionadas
cciGetLastExceptionData
cniCreateElementAsFirstChild
cniCreateElementAsFirstChildUsingParser
cniCreateElementAsLastChild
cniCreateElementAsLastChildUsingParser