// file : xsd/cxx/xml/dom/bits/error-handler-proxy.txx // author : Boris Kolpackov // copyright : Copyright (c) 2005-2010 Code Synthesis Tools CC // license : GNU GPL v2 + exceptions; see accompanying LICENSE file #include namespace xsd { namespace cxx { namespace xml { namespace dom { namespace bits { template bool error_handler_proxy:: handleError (const xercesc::DOMError& e) { using xercesc::DOMError; if (e.getSeverity() != DOMError::DOM_SEVERITY_WARNING) failed_ = true; if (native_eh_) return native_eh_->handleError (e); else { typedef typename error_handler::severity severity; severity s (severity::error); switch (e.getSeverity()) { case DOMError::DOM_SEVERITY_WARNING: { s = severity::warning; break; } case DOMError::DOM_SEVERITY_ERROR: { s = severity::error; break; } case DOMError::DOM_SEVERITY_FATAL_ERROR: { s = severity::fatal; break; } } xercesc::DOMLocator* loc (e.getLocation ()); #if _XERCES_VERSION >= 30000 return eh_->handle ( transcode (loc->getURI ()), static_cast (loc->getLineNumber ()), static_cast (loc->getColumnNumber ()), s, transcode (e.getMessage ())); #else XMLSSize_t l (loc->getLineNumber ()); XMLSSize_t c (loc->getColumnNumber ()); return eh_->handle ( transcode (loc->getURI ()), (l == -1 ? 0 : static_cast (l)), (c == -1 ? 0 : static_cast (c)), s, transcode (e.getMessage ())); #endif } } } } } } }