Diese Funktion legt für die Markierung 'next child complete' (nächstes untergeordnetes Element vollständig) im Zielsyntaxelement den angegebenen Wert fest.
void cpiSetElementCompleteNext( int* returnCode, CciElement* targetElement, CciBool value);
Keine. Wenn ein Fehler auftritt, gibt returnCode die Fehlerursache an.
Dieses Beispiel wurde aus der Parser-Beispieldatei BipSampPluginParser.c entnommen (Zeile 289 bis 318):
/* Rufen Sie einen Zeiger zum Start des Tags ab */ startMarker = (char*)pc->iBuffer+(int)pc->iIndex; /* Überspringen Sie den Tag */ goToNameEnd( (PARSER_CONTEXT_ST *)context, parser ); /* Rufen Sie einen Zeiger zum Tagende ab */ endMarker = (char*)pc->iBuffer+(int)pc->iIndex; /* Berechnen Sie die Größe des Tags */ markedSize = (size_t)endMarker-(int)startMarker; /* Konvertieren Sie den Tag ins Brokerformat */ data = CciNString((char *)startMarker, markedSize, pc->iCcsid); /* Erstellen Sie einen neues Namenselement für den Tag */ newElement = cpiCreateElement(&rc, parser); cpiSetElementType(&rc, newElement, CCI_ELEMENT_TYPE_NAME); cpiSetElementName(&rc, newElement, data); cpiSetElementCompletePrevious(&rc, newElement, 0); cpiSetElementCompleteNext(&rc, newElement, 0); if (pc->trace) { const char * mbData = mbString(data, pc->iCcsid); fprintf(pc->tracefile, "PLUGIN: New tag found\n"); fprintf(pc->tracefile, "PLUGIN: Created new NAME element; object=0x%x type=0x%x name=", newElement, CCI_ELEMENT_TYPE_NAME); fprintf(pc->tracefile, "%s\n", mbData); fflush(pc->tracefile); free((void *)mbData); } /* Geben Sie den Speicherplatz frei, der in 'CciNString()' zugeordnet ist */ free((void *)data); /* Fügen Sie das Element hinzu*/ cpiAddAsLastChild(&rc, element, newElement); cpiSetElementCompletePrevious(&rc, element, 1);