27 #ifndef NIDAS_CORE_XMLPARSER_H
28 #define NIDAS_CORE_XMLPARSER_H
35 #include <xercesc/dom/DOMImplementation.hpp>
36 #include <xercesc/dom/DOMErrorHandler.hpp>
37 #include <xercesc/dom/DOMDocument.hpp>
38 #include <xercesc/sax/InputSource.hpp>
40 #if XERCES_VERSION_MAJOR < 3
41 #include <xercesc/dom/DOMBuilder.hpp>
43 #include <xercesc/dom/DOMLSParser.hpp>
50 namespace nidas {
namespace core {
59 static xercesc::DOMImplementation *
_impl;
75 bool handleError(
const xercesc::DOMError& domError);
221 xercesc::DOMDocument*
parse(
const std::string& xmlFile,
bool verbose=
true)
224 xercesc::DOMDocument*
parse(xercesc::InputSource& source)
231 #if XERCES_VERSION_MAJOR < 3
268 xercesc::DOMDocument*
parse(
const std::string& xmlFile)
void setXercesDoXInclude(bool val)
Definition: XMLParser.cc:195
xercesc::DOMDocument * parse(const std::string &xmlFile)
Parse from a file.
Definition: XMLParser.cc:380
static int verbose
Definition: lidar_vel.cc:45
XMLException * _xmlException
Accumulated error messages.
Definition: XMLParser.h:103
void setXercesSchema(bool val)
Enable/disable schema support.
Definition: XMLParser.cc:153
void setDOMValidation(bool val)
DOMBuilder::setFilter is not yet implemented in xerces c++ 2.6.0 void setFilter(xercesc::DOMBuilderFi...
Definition: XMLParser.cc:129
xercesc::DOMDocument * parseXMLConfigFile(const std::string &xmlFileName)
Utility function which creates a temporary XMLParser, sets the options we typically want and parses t...
Definition: XMLParser.cc:269
static xercesc::DOMImplementation * getImplementation()
Definition: XMLParser.cc:54
nidas::util::Mutex _cacheLock
Definition: XMLParser.h:295
Exception which can be built from an xerces::XMLException, xercesc::SAXException, or xercesc::DOMExce...
Definition: XMLException.h:43
static nidas::util::Mutex _lock
Definition: XMLParser.h:60
Derived class of XMLParser that keeps its DOMDocuments when parsing an XML disk file, and returns the cached DOMDocument if the file hasn't changed.
Definition: XMLParser.h:252
XMLParser & operator=(const XMLParser &)
No assignment.
void resetErrors()
Definition: XMLParser.cc:331
~XMLErrorHandler()
Definition: XMLParser.cc:296
void setXercesUserAdoptsDOMDocument(bool val)
Control who owns DOMDocument pointer.
Definition: XMLParser.cc:177
xercesc::DOMImplementation * _impl
Definition: XMLParser.h:229
std::map< std::string, xercesc::DOMDocument * > _docCache
Definition: XMLParser.h:293
const std::list< std::string > & getWarningMessages() const
Definition: XMLParser.h:81
void operator=(const XMLErrorHandler &)
int getWarningCount() const
Definition: XMLParser.h:79
static nidas::util::Mutex _instanceLock
Definition: XMLParser.h:290
XMLCachingParser & operator=(const XMLCachingParser &)
No assignment.
~XMLCachingParser()
Definition: XMLParser.cc:370
XMLCachingParser()
Definition: XMLParser.cc:365
void setDOMNamespaces(bool val)
Enable/disable namespace processing.
Definition: XMLParser.cc:145
static void destroyInstance()
Definition: XMLParser.cc:356
static void terminate()
Definition: XMLParser.cc:76
XMLErrorHandler _errorHandler
Definition: XMLParser.h:236
virtual ~XMLParser()
Nuke the parser.
Definition: XMLParser.cc:207
static xercesc::DOMImplementation * _impl
Definition: XMLParser.h:59
Definition: IOException.h:37
void setXercesHandleMultipleImports(bool val)
Definition: XMLParser.cc:185
static XMLCachingParser * _instance
Definition: XMLParser.h:289
XMLParser()
Constructor.
Definition: XMLParser.cc:89
XMLErrorHandler()
Definition: XMLParser.cc:292
bool handleError(const xercesc::DOMError &domError)
Definition: XMLParser.cc:305
Definition: XMLParser.h:63
static time_t getFileModTime(const std::string &name)
Parse from an InputSource.
Definition: XMLParser.cc:407
xercesc::DOMBuilder * _parser
Definition: XMLParser.h:232
void setDOMValidateIfSchema(bool val)
Enable/disable schema validation.
Definition: XMLParser.cc:137
A C++ wrapper for a POSIX mutex.
Definition: ThreadSupport.h:154
std::map< std::string, time_t > _modTimeCache
Definition: XMLParser.h:292
Wrapper class around xerces-c DOMBuilder to parse XML.
Definition: XMLParser.h:117
std::list< std::string > _warningMessages
Accumulated warning messages.
Definition: XMLParser.h:98
Definition: XMLParser.h:52
const XMLException * getXMLException() const
Definition: XMLParser.h:84
xercesc::DOMDocument * parse(const std::string &xmlFile, bool verbose=true)
Definition: XMLParser.cc:216
void setDOMDatatypeNormalization(bool val)
Enable/disable datatype normalization.
Definition: XMLParser.cc:169
void setXercesSchemaFullChecking(bool val)
Enable/disable full schema constraint checking, including checking which may be time-consuming or mem...
Definition: XMLParser.cc:161
static XMLCachingParser * getInstance()
Definition: XMLParser.cc:345