+ currentProc->getLogger("parser")->error(reason,main_parser._file.c_str(),saxContext->input->line);
+}
+void parser::XML_SetUserData(_xmlParserCtxt* ctxt,
+ parser* par)
+{
+ ctxt->userData = par;
+}
+
+void XMLCALL parser::start_document(void* data)
+{
+ DEBTRACE("parser::start_document");
+ parser *currentParser = static_cast<parser *> (data);
+}
+
+void XMLCALL parser::end_document(void* data)
+{
+ DEBTRACE("parser::end_document");
+ parser *currentParser = static_cast<parser *> (data);
+}
+
+void XMLCALL parser::start_element(void* data,
+ const xmlChar* name,
+ const xmlChar** p)
+{
+ DEBTRACE("parser::start_element " << name);
+ parser *currentParser = static_cast<parser *> (data);
+ currentParser->incrCount((const XML_Char *)name);
+ currentParser->onStart((const XML_Char *)name, (const XML_Char **)p);
+}
+
+void XMLCALL parser::end_element(void* data,
+ const xmlChar* name)
+{
+ DEBTRACE("parser::end_element");
+ parser *childParser = static_cast<parser *> (data);
+ _stackParser.pop();
+ parser* pp=_stackParser.top();
+ XML_SetUserData(saxContext, pp);
+ pp->onEnd((const XML_Char *)name, childParser);
+ childParser->endParser();
+ }
+
+void XMLCALL parser::characters(void* data,
+ const xmlChar* ch,
+ int len)
+{
+ DEBTRACE("parser::characters " << len);
+ parser *currentParser = (parser *) (data);
+ currentParser->charData((const XML_Char*) ch, len);
+}
+
+void XMLCALL parser::comment(void* data,
+ const xmlChar* value)
+{
+ DEBTRACE("parser::comment");
+ parser *currentParser = static_cast<parser *> (data);
+}
+
+void XMLCALL parser::cdata_block(void* data,
+ const xmlChar* value,
+ int len)
+{
+ DEBTRACE("parser::cdata_block");
+ parser *currentParser = static_cast<parser *> (data);
+ currentParser->charData((const XML_Char*) value, len);
+}
+
+void XMLCALL parser::warning(void* data,
+ const char* fmt, ...)
+{
+ DEBTRACE("parser::warning");
+ parser *currentParser = static_cast<parser *> (data);
+ va_list args;
+ va_start(args, fmt);
+ std::string format = "%s";
+ if (format == fmt)
+ {
+ char* parv;
+ parv = va_arg(args, char*);
+ std::cerr << parv ;
+ }
+ else std::cerr << __FILE__ << " [" << __LINE__ << "] : "
+ << "error format not taken into account: " << fmt << std::endl;
+ va_end(args);
+}
+
+void XMLCALL parser::error(void* data,
+ const char* fmt, ...)
+{
+ DEBTRACE("parser::error");
+ parser *currentParser = static_cast<parser *> (data);
+ va_list args;
+ va_start(args, fmt);
+ std::string format = "%s";
+ if (format == fmt)
+ {
+ char* parv;
+ parv = va_arg(args, char*);
+ std::cerr << parv ;
+ }
+ else std::cerr << __FILE__ << " [" << __LINE__ << "] : "
+ << "error format not taken into account: " << fmt << std::endl;
+ va_end(args);
+}
+
+void XMLCALL parser::fatal_error(void* data,
+ const char* fmt, ...)
+{
+ DEBTRACE("parser::fatal_error");
+ parser *currentParser = static_cast<parser *> (data);
+ va_list args;
+ va_start(args, fmt);
+ std::string format = "%s";
+ if (format == fmt)
+ {
+ char* parv;
+ parv = va_arg(args, char*);
+ std::cerr << parv ;
+ }
+ else std::cerr << __FILE__ << " [" << __LINE__ << "] : "
+ << "error format not taken into account: " << fmt << std::endl;
+ va_end(args);