00001 #ifndef x_SaxToDom_h 00002 #define x_SaxToDom_h 00003 00004 #include "xercesc/sax2/DefaultHandler.hpp" 00005 #include "DetectorDescription/Core/interface/adjgraph.h" 00006 #include "DetectorDescription/Core/interface/graphwalker.h" 00007 00008 #include "DetectorDescription/RegressionTest/src/TinyDom.h" 00009 00010 #include <string> 00011 #include <map> 00012 #include <vector> 00013 00014 class SaxToDom : public xercesc_2_7::DefaultHandler 00015 { 00016 public: 00017 typedef xercesc_2_7::Attributes Attributes; 00018 typedef xercesc_2_7::SAXParseException SAXParseException; 00019 SaxToDom(); 00020 ~SaxToDom(); 00021 void startElement(const XMLCh* const uri, const XMLCh* const localname, const XMLCh* const qname, const Attributes& attrs); 00022 //void startElement(const XMLCh* const name, AttributeList& attributes); 00023 void endElement(const XMLCh* const uri, 00024 const XMLCh* const name, 00025 const XMLCh* const qname); 00026 const TinyDom & dom() const; 00027 00028 // errors 00029 void error(const SAXParseException& e); 00030 00031 private: 00032 std::vector<NodeName> parent_; 00033 TinyDom dom_; 00034 }; 00035 00036 #endif