cniCreateElementAsLastChildFromBitstream

创建新语法元素树作为指定的语法元素的最后的子代并将它与指定的解析器关联起来。通过解析指定的位流来填充新语法元素树。在执行此函数期间位流被复制,这样调用者可以释放或重新使用已分配来保留原始位流的内存。仅当创建消息体时您可 以使用此函数,即,消息根的最后一个子代。应该已存在输出消息。此输出消息的根元素应该作为目标元素参数传入。因为此调用仅设计为用于创建消息体,所以不能使用它来构建后续元素。例如,它不应该用于创建 RFH2 作为根的 子代并继而在 RFH2 后将 XML 消息作为根的最后一个子代。

语法

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

参数

returnCode
来自函数(输出)的返回码。指定 NULL 指针表示节点不要处理错误。如果输入不是 NULL,则输出表示调用的成功状态。在执行此调用期间别的任何异常都重新抛出到流中的下一个上行节点。调用 cciGetLastExceptionData 获取有关异常的详细信息。
可能的返回码是:
  • CCI_SUCCESS
  • CCI_EXCEPTION
  • CCI_INV_ELEMENT_OBJECT
  • CCI_INV_PARSER_NAME
  • CCI_INV_DATA_POINTER
targetElement
在其下创建新语法元素树的语法元素(输入)。这必须是消息根。
parserClassName
要用于解析位流(输入)的解析器类的名称。您必须使用用于解析整个位流的同一个解析器。
value
包含指向要解析位流的指针及指向此位流(输出)在 CciBytes 中大小的指针的 CciByteArray 结构的指针。
messageType
用于从位流(输入)创建元素树的消息类型定义。NULL 指针表示忽略此参数。同样,如果指定的解析器对此值没有兴趣,例如,如果它是个一般 XML 解析器,则忽略参数。
messageSet
用于从位流(输入)创建元素树的消息集定义。NULL 指针表示忽略此参数。同样,如果指定的解析器对此值没有兴趣,例如,如果它是个一般 XML 解析器,则忽略参数。
messageFormat
用于从位流(输入)创建元素树的格式。NULL 指针表示忽略此参数。同样,如果指定的解析器对此值没有兴趣,例如,如果它是个一般 XML 解析器,则忽略参数。
encoding
在解析位流(输入)时要使用的编码。此参数是必要的。您可以指定 0 值来表明应该使用的队列管理器编码。
ccsid
解析位流(输入)时要使用的编码字符集标识。此参数是必要的。您可以指定 0 值来表明应该使用的队列管理器的 ccsid。
options
更新开始保留该选项以供将来使用。您必须指定值 0 才能维持向前兼容性。更新结束

返回值

如果成功,返回新元素对象的地址。否则,返回值零(CCI_NULL_ADDR)并且返回码参数表明错误的原因。如果执行期间发生异常,则 returnCode 设置为 CCI_EXCEPTION

示例

  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;
}
声明 | 商标 | 下载 | 书库 | 支持 | 反馈
Copyright IBM Corporation 1999, 2006 最后一次更新时间:2006/08/14
as07865_