Verwenden Sie diese Funktion, um eine Syntaxelement-Baumstruktur als letztes untergeordnetes Element des angegebenen Syntaxelements zu erstellen und mit dem angegebenen Parser zu verknüpfen. Die Syntaxelement-Baumstruktur wird durch die Syntaxanalyse des angegebenen Bitstroms gefüllt.
Während der Ausführung dieser Funktion wird der Bitstrom kopiert, sodass der Aufrufende den Speicher, der dem ursprünglichen Bitstrom zugeordnet ist, freigeben oder wiederverwenden kann. Mit dieser Funktion kann nur ein Nachrichtenhauptteil, d. h. das letzte untergeordnete Element der Nachrichteneigenschaft erstellt werden. Eine Ausgabenachricht muss bereits vorhanden sein.
Das Stammelement dieser Ausgabenachricht sollte als Zielelementparameter übergeben werden. Da dieser Aufruf nur für das Erstellen eines Nachrichtenhauptteils konzipiert wurde, können Sie ihn nicht zum Erzeugen nachfolgender Elemente verwenden. Beispiel: Man sollte damit nicht einen MQRFH2-Header als letztes untergeordnetes Element des Stamms erstellen und anschließend eine XML-Nachricht als letztes untergeordnetes Element des Stamms hinter dem MQRFH2-Header.
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);
Bei Erfolg wird die Adresse des neuen Elementobjekts zurückgegeben. Ansonsten wird ein Nullwert (CCI_NULL_ADDR) zurückgegeben und der Rückkehrcode-Parameter gibt den Grund für den Fehler an. Wenn während der Ausführung eine Ausnahmebedingung auftritt, wird returnCode auf CCI_EXCEPTION gesetzt.
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;
}