00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef __BxSaxHandler__
00019 #define __BxSaxHandler__
00020
00021 #include <xercesc/sax2/Attributes.hpp>
00022 #include <xercesc/sax2/DefaultHandler.hpp>
00023
00024 XERCES_CPP_NAMESPACE_USE
00025
00026 class BxDataBinxParser;
00027
00028 class BxSaxHandler : public DefaultHandler
00029 {
00030 public:
00031 BxSaxHandler();
00032 BxSaxHandler(BxDataBinxParser*);
00033 ~BxSaxHandler();
00034
00035 bool parse(const char* xmlfile);
00036
00037
00038
00039
00040 void startDocument() {}
00041 void endDocument() {}
00042 void startElement(const XMLCh* const, const XMLCh* const localname, const XMLCh* const, const Attributes& attrs);
00043 void endElement(const XMLCh* const, const XMLCh* const localname, const XMLCh* const);
00044 void characters(const XMLCh* const, const unsigned int);
00045 void ignorableWhitespace(const XMLCh* const, const unsigned int) {}
00046
00047
00048
00049
00050 void warning(const SAXParseException& exception);
00051 void error(const SAXParseException& exception);
00052 void fatalError(const SAXParseException& exception);
00053 void resetErrors();
00054
00055 void setDataBinxHandler(BxDataBinxParser* pHandler) { pDataBinxHandler_ = pHandler; }
00056 void setAttributeHandler(BxDataBinxParser* pHandler) { pAttributeHandler_ = pHandler; }
00057
00058 private:
00059
00060
00061 BxSaxHandler(const BxSaxHandler&);
00062
00063
00064 void operator=(const BxSaxHandler&);
00065
00066 bool fSawErrors;
00067 BxDataBinxParser* pDataBinxHandler_;
00068 BxDataBinxParser* pAttributeHandler_;
00069 };
00070
00071 #endif
00072