OMNeT++ NEDXML  5.4.1
saxparser.h
Go to the documentation of this file.
1 //==========================================================================
2 // SAXPARSER.H - part of
3 // OMNeT++/OMNEST
4 // Discrete System Simulation in C++
5 //
6 //==========================================================================
7 
8 /*--------------------------------------------------------------*
9  Copyright (C) 2002-2017 Andras Varga
10  Copyright (C) 2006-2017 OpenSim Ltd.
11 
12  This file is distributed WITHOUT ANY WARRANTY. See the file
13  `license' for details on this and other legal matters.
14 *--------------------------------------------------------------*/
15 
16 
17 
18 #ifndef __OMNETPP_NEDXML_SAXPARSER_H
19 #define __OMNETPP_NEDXML_SAXPARSER_H
20 
21 #include <cstdio>
22 #include "nedxmldefs.h"
23 
24 namespace omnetpp {
25 namespace nedxml {
26 
27 class SAXParser;
28 
29 
41 {
42  friend class SAXParser;
43  protected:
45 
46  // internal: called from SAXParser::setHandler()
47  virtual void setParser(SAXParser *p) {parser=p;}
48 
49  public:
53  SAXHandler() {parser=nullptr;}
54 
58  virtual ~SAXHandler() {}
59 
63  virtual void startElement(const char *name, const char **atts) {}
64 
68  virtual void endElement(const char *name) {}
69 
73  virtual void characterData(const char *s, int len) {}
74 
78  virtual void processingInstruction(const char *target, const char *data) {}
79 
83  virtual void comment(const char *data) {}
84 
88  virtual void startCdataSection() {}
89 
93  virtual void endCdataSection() {}
94 };
95 
96 
108 {
109  protected:
110  char errorText[512];
113 
114  protected:
115  // allows for a common implementation of parse() and parseContent()
116  bool doParse(const char *filename, const char *content);
117 
118  public:
122  SAXParser();
123 
127  void setHandler(SAXHandler *sh);
128 
135  bool parse(const char *filename);
136 
143  bool parseContent(const char *content);
144 
148  int getCurrentLineNumber();
149 
153  const char *getErrorMessage() {return errorText;}
154 };
155 
156 } // namespace nedxml
157 } // namespace omnetpp
158 
159 
160 #endif
161 
#define NEDXML_API
Definition: nedxmldefs.h:31
virtual void endCdataSection()
Definition: saxparser.h:93
SAXParser * parser
Definition: saxparser.h:44
virtual void processingInstruction(const char *target, const char *data)
Definition: saxparser.h:78
SAXHandler * saxHandler
Definition: saxparser.h:111
void * currentParser
Definition: saxparser.h:112
virtual void startElement(const char *name, const char **atts)
Definition: saxparser.h:63
virtual void comment(const char *data)
Definition: saxparser.h:83
virtual void endElement(const char *name)
Definition: saxparser.h:68
SAXHandler()
Definition: saxparser.h:53
const char * getErrorMessage()
Definition: saxparser.h:153
Definition: astbuilder.h:25
virtual void startCdataSection()
Definition: saxparser.h:88
Base class for SAX event handlers needed by SAXParser. This is a simplified SAX handler interface...
Definition: saxparser.h:40
Wraps XML SAX parsers.
Definition: saxparser.h:107
virtual void characterData(const char *s, int len)
Definition: saxparser.h:73
virtual void setParser(SAXParser *p)
Definition: saxparser.h:47
virtual ~SAXHandler()
Definition: saxparser.h:58