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