新しい構文エレメント・ツリーを、指定した構文エレメントの最後の子として作成し、指定したパーサーにこれを関連付けます。 指定したビット・ストリームを構文解析することにより、新しい構文エレメント・ツリーにデータが入れられます。この関数の実行時にビット・ストリームがコピーされ、これによって呼び出し側はオリジナルのビット・ストリームを保持するために割り当てられていたメモリーを解放するか、または再利用することができます。この関数は、メッセージ本体、つまりメッセージ・ルートの最後の子を作成する場合にのみ使用できます。 出力メッセージはすでに存在していなければなりません。 この出力メッセージのルート・エレメントはターゲット・エレメント・パラメーターとして渡されなければなりません。 この呼び出しはメッセージ本体の作成専用に設計されているため、連続したエレメントの構築には使用できません。 例えば、ルートの最後の子として 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);
成功した場合、新規エレメント・オブジェクトのアドレスが戻されます。 失敗した場合、ゼロの値 (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; }