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#include <xercesc/dom/DOMLSParser.hpp>
46namespace nidas {
namespace core {
57 static xercesc::DOMImplementation *
_impl;
73 bool handleError(
const xercesc::DOMError& domError);
225 xercesc::DOMDocument*
parse(
const std::string& xmlFile,
bool verbose=
true);
230 xercesc::DOMDocument*
parse(xercesc::InputSource& source);
241 xercesc::DOMDocument*
parseString(
const std::string& xml);
250 xercesc::DOMDocument*
295 xercesc::DOMDocument*
parse(
const std::string& xmlFile);
Derived class of XMLParser that keeps its DOMDocuments when parsing an XML disk file,...
Definition XMLParser.h:274
static XMLCachingParser * getInstance()
Definition XMLParser.cc:298
static nidas::util::Mutex _instanceLock
Definition XMLParser.h:322
static time_t getFileModTime(const std::string &name)
Parse from an InputSource.
Definition XMLParser.cc:358
~XMLCachingParser()
Definition XMLParser.cc:322
static void destroyInstance()
Definition XMLParser.cc:308
std::map< std::string, time_t > _modTimeCache
Definition XMLParser.h:324
static XMLCachingParser * _instance
Definition XMLParser.h:321
XMLCachingParser & operator=(const XMLCachingParser &)
No assignment.
nidas::util::Mutex _cacheLock
Definition XMLParser.h:327
std::map< std::string, xercesc::DOMDocument * > _docCache
Definition XMLParser.h:325
xercesc::DOMDocument * parse(const std::string &xmlFile)
Parse from a file.
Definition XMLParser.cc:332
XMLCachingParser()
Definition XMLParser.cc:317
XMLCachingParser(const XMLCachingParser &)
No copying.
Definition XMLParser.h:62
XMLException * _xmlException
Accumulated error messages.
Definition XMLParser.h:101
bool handleError(const xercesc::DOMError &domError)
Definition XMLParser.cc:258
const XMLException * getXMLException() const
Definition XMLParser.h:82
XMLErrorHandler(const XMLErrorHandler &)
~XMLErrorHandler()
Definition XMLParser.cc:249
const std::list< std::string > & getWarningMessages() const
Definition XMLParser.h:79
XMLErrorHandler()
Definition XMLParser.cc:245
std::list< std::string > _warningMessages
Accumulated warning messages.
Definition XMLParser.h:96
int getWarningCount() const
Definition XMLParser.h:77
void resetErrors()
Definition XMLParser.cc:284
void operator=(const XMLErrorHandler &)
Exception which can be built from an xerces::XMLException, xercesc::SAXException, or xercesc::DOMExce...
Definition XMLException.h:44
Definition XMLParser.h:48
static xercesc::DOMImplementation * _impl
Definition XMLParser.h:57
static xercesc::DOMImplementation * getImplementation()
Definition XMLParser.cc:55
static void terminate()
Definition XMLParser.cc:77
static nidas::util::Mutex _lock
Definition XMLParser.h:58
Wrapper class around xerces-c DOMBuilder to parse XML.
Definition XMLParser.h:116
void setDOMValidateIfSchema(bool val)
Enable/disable schema validation.
Definition XMLParser.cc:124
void setXercesHandleMultipleImports(bool val)
Definition XMLParser.cc:148
void setDOMDatatypeNormalization(bool val)
Enable/disable datatype normalization.
Definition XMLParser.cc:140
xercesc::DOMLSParser * _parser
Definition XMLParser.h:257
void setDOMNamespaces(bool val)
Enable/disable namespace processing.
Definition XMLParser.cc:128
xercesc::DOMDocument * parse(const std::string &xmlFile, bool verbose=true)
Definition XMLParser.cc:175
XMLParser()
Constructor.
Definition XMLParser.cc:90
XMLErrorHandler _errorHandler
Definition XMLParser.h:258
void setXercesSchemaFullChecking(bool val)
Enable/disable full schema constraint checking, including checking which may be time-consuming or mem...
Definition XMLParser.cc:136
xercesc::DOMImplementation * _impl
Definition XMLParser.h:255
XMLParser & operator=(const XMLParser &)
No assignment.
xercesc::DOMDocument * parseString(const std::string &xml)
Parse XML string into a document.
Definition XMLParser.cc:369
void setXercesSchema(bool val)
Enable/disable schema support.
Definition XMLParser.cc:132
static xercesc::DOMDocument * ParseString(const std::string &xml)
Call parseString() on a default XMLParser instance.
Definition XMLParser.cc:381
void setXercesUserAdoptsDOMDocument(bool val)
Control who owns DOMDocument pointer.
Definition XMLParser.cc:144
XMLParser(const XMLParser &)
No copying.
void setXercesDoXInclude(bool val)
Definition XMLParser.cc:156
virtual ~XMLParser()
Nuke the parser.
Definition XMLParser.cc:166
void setDOMValidation(bool val)
DOMBuilder::setFilter is not yet implemented in xerces c++ 2.6.0 void setFilter(xercesc::DOMBuilderFi...
Definition XMLParser.cc:120
A C++ wrapper for a POSIX mutex.
Definition ThreadSupport.h:161
static int verbose
Definition lidar_vel.cc:45
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:223
Sample * getSample(sampleType type, unsigned int len)
A convienence method for getting a sample of an enumerated type from a pool.
Definition Sample.cc:70
Root namespace for the NCAR In-Situ Data Acquisition Software.
Definition A2DConverter.h:31