Example Main Function
This is a sample context data structure:
/* SAX callbacks - display callback events into file */ int testcase_read_15(JCHAR *m_infile, JCHAR *m_outfile) { XRCS_Status XRCSStatus; XRCS_hParser hParser; ZCALLBACK_VALUES zCbValues; PCALLBACK_VALUES pCbValues = &zCbValues; /* initialize context structure */ pCbValues->fp = NULL; pCbValues->szIndentString = _J(" "); pCbValues->nIndentLevel = 0; /* open display file */ pCbValues->fp = jdeFopen(m_outfile, _J("w")); if (pCbValues->fp != NULL) { XRCSStatus = XRCS_initEngine(); if(XRCSStatus != XRCS_SUCCESS) { return -1; } XRCSStatus = XRCS_getParserByType(&hParser, XRCS_SAX_PARSER_TYPE); if(XRCSStatus != XRCS_SUCCESS) { return -1; } XRCSStatus = XRCS_setCallback(hParser, XRCS_CALLBACK_START_DOC, (void *) cb_startDoc_Display, (void *) pCbValues); if(XRCSStatus != XRCS_SUCCESS) { return -1; } /* set up callbacks for the SAX parser */ XRCSStatus = XRCS_setCallback(hParser, XRCS_CALLBACK_END_DOC, (void *) cb_endDoc_Display, (void *) pCbValues); if(XRCSStatus != XRCS_SUCCESS) { return -1; } XRCSStatus = XRCS_setCallback(hParser, XRCS_CALLBACK_START_ELEM, (void *) cb_startElement_Display, (void *) pCbValues); if(XRCSStatus != XRCS_SUCCESS) { return -1; } XRCSStatus = XRCS_setCallback(hParser, XRCS_CALLBACK_END_ELEM, (void *) cb_endElement_Display, (void *) pCbValues); if(XRCSStatus != XRCS_SUCCESS) { return -1; } XRCSStatus = XRCS_setCallback(hParser, XRCS_CALLBACK_CHARACTERS, (void *) cb_characters_Display, (void *) pCbValues); if(XRCSStatus != XRCS_SUCCESS) { return -1; } XRCSStatus = XRCS_setCallback(hParser, XRCS_CALLBACK_IGNORABLE_WHITESPACE, (void *) cb_ignorableWhitespace_Display, (void *) pCbValues); if(XRCSStatus != XRCS_SUCCESS) { return -1; } XRCSStatus = XRCS_setCallback(hParser, XRCS_CALLBACK_FATAL_ERROR, (void *) cb_fatalError_Display, (void *) pCbValues); if(XRCSStatus != XRCS_SUCCESS) { return -1; } XRCSStatus = XRCS_setCallback(hParser, XRCS_CALLBACK_ERROR, (void *) cb_error_Display, (void *) pCbValues); if(XRCSStatus != XRCS_SUCCESS) { return -1; } XRCSStatus = XRCS_setCallback(hParser, XRCS_CALLBACK_WARNING, (void *) cb_warning_Display, (void *) pCbValues); if(XRCSStatus != XRCS_SUCCESS) { return -1; } /* now do the actual parsing */ XRCSStatus = XRCS_parseXMLFile(hParser,m_infile, NULL); if(XRCSStatus != XRCS_SUCCESS) { return -1; } XRCSStatus = XRCS_freeParser(hParser); XRCSStatus = XRCS_terminateEngine(); /* close display file */ jdeFclose(pCbValues->fp); } else { /* could not open display file */ return -1; } return 0; }