ターゲット構文エレメントにある 'next child complete' フラグを、指定した値に設定します。
void cpiSetElementCompleteNext( int* returnCode, CciElement* targetElement, CciBool value);
なし。エラーが発生した場合、returnCode がエラーの理由を示します。
この例は、サンプル・パーサー・ファイル BipSampPluginParser.c から取られています (289 行から 318 行)。
/* Get a pointer to the start of the tag */ startMarker = (char*)pc->iBuffer+(int)pc->iIndex; /* Skip over the tag */ goToNameEnd( (PARSER_CONTEXT_ST *)context, parser ); /* Get a pointer to the end of the tag */ endMarker = (char*)pc->iBuffer+(int)pc->iIndex; /* Compute the size of the tag */ markedSize = (size_t)endMarker-(int)startMarker; /* Convert the tag into broker form */ data = CciNString((char *)startMarker, markedSize, pc->iCcsid); /* Create a new name element for the 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); } /* Free the memory allocated in CciNString() */ free((void *)data); /* Add the element */ cpiAddAsLastChild(&rc, element, newElement); cpiSetElementCompletePrevious(&rc, element, 1);