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;
}