00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #include <xercesc/util/PlatformUtils.hpp>
00019 #include <xercesc/sax2/XMLReaderFactory.hpp>
00020
00021 #include "psfa/Sax2Parser.hpp"
00022
00023
00024 xercesc::SAX2XMLReader* psfa::Sax2Parser::parser_ = 0;
00025
00026 psfa::Sax2Parser::Sax2Parser()
00027 {
00028
00029 }
00030
00031
00032
00033
00034 psfa::Sax2Parser::~Sax2Parser()
00035 {
00036 using xercesc::XMLPlatformUtils;
00037
00038 delete parser_;
00039 XMLPlatformUtils::Terminate();
00040 }
00041
00042
00043
00044 xercesc::SAX2XMLReader*
00045 psfa::Sax2Parser::getSax2Parser()
00046 {
00047 using xercesc::XMLReaderFactory;
00048 using xercesc::XMLPlatformUtils;
00049 using xercesc::XMLString;
00050 using xercesc::XMLUni;
00051
00052 if ( !parser_ ) {
00053 XMLPlatformUtils::Initialize();
00054 parser_ = XMLReaderFactory::createXMLReader();
00055
00056 parser_->setFeature(XMLUni::fgSAX2CoreValidation, true);
00057 parser_->setFeature(XMLUni::fgXercesDynamic, true);
00058 return parser_;
00059 }
00060 return parser_;
00061 }