Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #include "DetectorDescription/Parser/interface/DDLSAX2Handler.h"
00015 #include "DetectorDescription/Parser/src/StrX.h"
00016
00017 #include "FWCore/MessageLogger/interface/MessageLogger.h"
00018
00019 DDLSAX2Handler::DDLSAX2Handler( void )
00020 : attrCount_(0),
00021 characterCount_(0),
00022 elementCount_(0),
00023 spaceCount_(0),
00024 sawErrors_(false),
00025 userNS_(false)
00026 {}
00027
00028 DDLSAX2Handler::~DDLSAX2Handler( void )
00029 {}
00030
00031
00032
00033
00034
00035 void
00036 DDLSAX2Handler::startElement( const XMLCh* const uri,
00037 const XMLCh* const localname,
00038 const XMLCh* const qname,
00039 const Attributes& attrs )
00040 {
00041 ++elementCount_;
00042 attrCount_ += attrs.getLength();
00043 }
00044
00045 void
00046 DDLSAX2Handler::endElement( const XMLCh* const uri,
00047 const XMLCh* const localname,
00048 const XMLCh* const qname )
00049 {
00050
00051 }
00052
00053 void
00054 DDLSAX2Handler::characters( const XMLCh* const chars,
00055 const unsigned int length )
00056 {
00057 characterCount_ += length;
00058 }
00059
00060 void
00061 DDLSAX2Handler::comment( const XMLCh *const chars, const unsigned int length )
00062 {
00063
00064 }
00065
00066 void
00067 DDLSAX2Handler::ignorableWhitespace( const XMLCh* const chars,
00068 const unsigned int length )
00069 {
00070 spaceCount_ += length;
00071 }
00072
00073 void
00074 DDLSAX2Handler::resetDocument( void )
00075 {
00076 attrCount_ = 0;
00077 characterCount_ = 0;
00078 elementCount_ = 0;
00079 spaceCount_ = 0;
00080 }
00081
00082 void
00083 DDLSAX2Handler::dumpStats( const std::string& fname )
00084 {
00085 std::cout << "DetectorDescription/Parser/interface/DDLSAX2Handler::dumpStats, file: "
00086 << fname << " ("
00087 << getElementCount() << " elems, "
00088 << getAttrCount() << " attrs, "
00089 << getSpaceCount() << " spaces, "
00090 << getCharacterCount() << " chars)" << std::endl;
00091 }
00092
00093
00094
00095
00096
00097 void
00098 DDLSAX2Handler::error( const SAXParseException& e )
00099 {
00100 sawErrors_ = true;
00101 edm::LogError("DetectorDescription_Parser_DDLSAX2Handler")
00102 << "\nError at file " << StrX(e.getSystemId())
00103 << ", line " << e.getLineNumber()
00104 << ", char " << e.getColumnNumber()
00105 << "\n Message: " << StrX(e.getMessage()) << std::endl;
00106 }
00107
00108 void
00109 DDLSAX2Handler::fatalError( const SAXParseException& e )
00110 {
00111 sawErrors_ = true;
00112 edm::LogError("DetectorDescription_Parser_DDLSAX2Handler")
00113 << "\nFatal Error at file " << StrX(e.getSystemId())
00114 << ", line " << e.getLineNumber()
00115 << ", char " << e.getColumnNumber()
00116 << "\n Message: "
00117 << StrX(e.getMessage()) << std::endl;
00118 throw cms::Exception("DDException") << "DetectorDescription_Parser_Unrecoverable_Error_from_Xerces: "
00119 << std::string(StrX(e.getMessage()).localForm())
00120 << " file: " << std::string(StrX(e.getSystemId()).localForm())
00121 << " line: " << e.getLineNumber() << " col: " << e.getColumnNumber();
00122 }
00123
00124 void
00125 DDLSAX2Handler::warning( const SAXParseException& e )
00126 {
00127 edm::LogWarning("DetectorDescription_Parser_DDLSAX2Handler")
00128 << "\nWarning at file " << StrX(e.getSystemId())
00129 << ", line " << e.getLineNumber()
00130 << ", char " << e.getColumnNumber()
00131 << "\n Message: " << StrX(e.getMessage()) << std::endl;
00132 }
00133
00134 void
00135 DDLSAX2Handler::setUserNS( bool userns )
00136 {
00137 userNS_ = userns;
00138 }
00139
00140 void
00141 DDLSAX2Handler::setNameSpace( const std::string& nms )
00142 {
00143 nmspace_ = nms;
00144 }