51 const std::string& file)
52 : myParentHandler(0), myParentIndicator(
SUMO_TAG_NOTHING), myFileName(file) {
54 while (tags[i].key != terminatorTag) {
55 myTagMap.insert(TagMap::value_type(tags[i].str, tags[i].key));
59 while (attrs[i].key != terminatorAttr) {
89 int len = (int)name.length();
90 XMLCh* ret =
new XMLCh[len + 1];
92 for (; i < len; i++) {
93 ret[i] = (XMLCh) name[i];
103 const XMLCh*
const qname,
104 const XERCES_CPP_NAMESPACE::Attributes& attrs) {
124 const XMLCh*
const qname) {
133 char* buf =
new char[len + 1];
145 }
catch (std::runtime_error&) {
179 TagMap::const_iterator i =
myTagMap.find(tag);
189 std::ostringstream buf;
190 char* pMsg = XERCES_CPP_NAMESPACE::XMLString::transcode(exception.getMessage());
191 buf << pMsg << std::endl;
192 buf <<
" In file '" <<
getFileName() <<
"'" << std::endl;
193 buf <<
" At line/column " << exception.getLineNumber() + 1
194 <<
'/' << exception.getColumnNumber() <<
"." << std::endl;
195 XERCES_CPP_NAMESPACE::XMLString::release(&pMsg);
static std::string getConfigurationRelative(const std::string &configPath, const std::string &path)
Returns the second path as a relative path to the first file.
int convertTag(const std::string &tag) const
Converts a tag from its string into its numerical representation.
GenericSAXHandler(StringBijection< int >::Entry *tags, int terminatorTag, StringBijection< int >::Entry *attrs, int terminatorAttr, const std::string &file)
Constructor.
const std::string & getFileName() const
returns the current file name
std::string myFileName
The name of the currently parsed file.
std::string buildErrorMessage(const XERCES_CPP_NAMESPACE::SAXParseException &exception)
Builds an error message.
std::vector< std::string > myCharactersVector
A list of character strings obtained so far to build the complete characters string at the end...
static bool runParser(GenericSAXHandler &handler, const std::string &file, const bool isNet=false)
Runs the given handler on the given file; returns if everything's ok.
void error(const XERCES_CPP_NAMESPACE::SAXParseException &exception)
Handler for XML-errors.
#define WRITE_WARNING(msg)
void characters(const XMLCh *const chars, const XERCES3_SIZE_t length)
The inherited method called when characters occured.
virtual ~GenericSAXHandler()
Destructor.
A handler which converts occuring elements and attributes into enums.
void setFileName(const std::string &name)
Sets the current file name.
Encapsulated SAX-Attributes.
static bool isAbsolute(const std::string &path)
Returns the information whether the given path is absolute.
XMLCh * convert(const std::string &name) const
converts from c++-string into unicode
void warning(const XERCES_CPP_NAMESPACE::SAXParseException &exception)
Handler for XML-warnings.
virtual void myCharacters(int element, const std::string &chars)
Callback method for characters to implement by derived classes.
GenericSAXHandler * myParentHandler
The handler to give control back to.
void registerParent(const int tag, GenericSAXHandler *handler)
Assigning a parent handler which is enabled when the specified tag is closed.
static void setHandler(GenericSAXHandler &handler)
Sets the given handler for the default reader.
Encapsulated Xerces-SAX-attributes.
std::string getString(int id) const
Returns the string-value of the named (by its enum-value) attribute.
void fatalError(const XERCES_CPP_NAMESPACE::SAXParseException &exception)
Handler for XML-errors.
virtual void myStartElement(int element, const SUMOSAXAttributes &attrs)
Callback method for an opening tag to implement by derived classes.
std::map< int, std::string > myPredefinedTagsMML
the map from ids to their string representation
static std::string _2str(const int var)
convert int to string
int myParentIndicator
The tag indicating that control should be given back.
void startElement(const XMLCh *const uri, const XMLCh *const localname, const XMLCh *const qname, const XERCES_CPP_NAMESPACE::Attributes &attrs)
The inherited method called when a new tag opens.
void endElement(const XMLCh *const uri, const XMLCh *const localname, const XMLCh *const qname)
The inherited method called when a tag is being closed.
virtual void myEndElement(int element)
Callback method for a closing tag to implement by derived classes.