Isis 3.0
Home
XmlStackedHandler.h
Go to the documentation of this file.
1 #ifndef XmlStackedHandler_H
2 #define XmlStackedHandler_H
3 
4 #include <QXmlSimpleReader>
5 
6 template <typename T> class QStack;
7 
8 class QXmlParseException;
9 namespace Isis {
10  class XmlStackedHandlerReader;
11 
48  public:
51 
52  virtual void setReader(XmlStackedHandlerReader *);
53  void switchToNewHandler(XmlStackedHandler *nextHandler);
54 
55  virtual bool startElement(const QString &namespaceURI, const QString &localName,
56  const QString &qName, const QXmlAttributes &atts);
57 
58  virtual bool endElement(const QString &namespaceURI, const QString &localName,
59  const QString &qName);
60 
61  protected:
63  const XmlStackedHandlerReader *reader() const;
64  bool fatalError(const QXmlParseException &exception);
65 
66  private:
67  Q_DISABLE_COPY(XmlStackedHandler);
68 
69  XmlStackedHandlerReader *m_reader;
70  int m_depth;
71 
72  QString m_lastStartNamespaceURI;
73  QString m_lastStartLocalName;
74  QString m_lastStartQName;
75  QXmlAttributes m_lastStartAtts;
76  };
77 }
78 
79 #endif
XmlStackedHandler()
Definition: XmlStackedHandler.cpp:11
XmlStackedHandlerReader * reader()
Definition: XmlStackedHandler.cpp:60
bool fatalError(const QXmlParseException &exception)
Definition: XmlStackedHandler.cpp:70
virtual bool startElement(const QString &namespaceURI, const QString &localName, const QString &qName, const QXmlAttributes &atts)
Definition: XmlStackedHandler.cpp:34
XML Handler that parses XMLs in a stack-oriented way.
Definition: XmlStackedHandler.h:47
virtual bool endElement(const QString &namespaceURI, const QString &localName, const QString &qName)
Definition: XmlStackedHandler.cpp:45
Definition: Calculator.h:32
void switchToNewHandler(XmlStackedHandler *nextHandler)
Definition: XmlStackedHandler.cpp:28
virtual void setReader(XmlStackedHandlerReader *)
Definition: XmlStackedHandler.cpp:23
his enables stack-based XML parsing of XML files.
Definition: XmlStackedHandlerReader.h:26
~XmlStackedHandler()
Definition: XmlStackedHandler.cpp:17