Scribus
Open source desktop publishing at your fingertips
saxfilter.h
1 /*
2  * saxfilter.h
3  *
4  *
5  * Created by Andreas Vox on 21.09.06.
6  * Copyright 2006 under GPL2. All rights reserved.
7  *
8  */
9 
10 
11 
12 #ifndef SAXFILTER_H
13 #define SAXFILTER_H
14 
15 #include "saxhandler.h"
16 
20 class SaxFilter : public SaxHandler {
21 public:
22  SaxFilter(SaxHandler* delegate) : m_delegate(delegate) {}
23  void setDelegate(SaxHandler* delegate) { m_delegate = delegate; }
24  SaxHandler* delegate() { return m_delegate; }
25  virtual void beginDoc();
26  virtual void endDoc();
27  virtual void begin(const Xml_string& tag, Xml_attr attr);
28  virtual void end(const Xml_string& tag);
29  virtual void chars(const Xml_string& text);
30 private:
31  SaxHandler* m_delegate;
32 };
33 
34 
44 class KeepOpen : public SaxFilter {
45 public:
46  KeepOpen(SaxHandler* delegate);
47  virtual void begin(const Xml_string& tag, Xml_attr attr);
48  virtual void end(const Xml_string& tag);
49  Xml_string openTag();
50 private:
51  int m_level;
52  Xml_string m_tag;
53 };
54 
55 
60 class RenameElem : public SaxFilter {
61 public:
62  RenameElem(SaxHandler* delegate, const Xml_string& oldname, const Xml_string& newname);
63  RenameElem(SaxHandler* delegate, const Xml_string& newname);
64  virtual void begin(const Xml_string& tag, Xml_attr attr);
65  virtual void end(const Xml_string& tag);
66 private:
67  int m_level;
68  Xml_string m_old;
69  Xml_string m_new;
70 };
71 
72 
76 class AddAttributes : public SaxFilter {
77 public:
78  AddAttributes(SaxHandler* delegate, Xml_attr add);
79  virtual void begin(const Xml_string& tag, Xml_attr attr);
80 private:
81  bool m_oneshot;
82  Xml_attr m_attributes;
83 };
84 
85 
92 class SaxHandlerNull : public SaxHandler {
93 public:
94  SaxHandlerNull() {}
95  virtual void beginDoc() {}
96  virtual void endDoc() {}
97  virtual void begin(const Xml_string& tag, Xml_attr attr) {}
98  virtual void end(const Xml_string& tag) {}
99  virtual void chars(const Xml_string& text) {}
100 };
101 
102 
103 #endif
Definition: saxfilter.h:92
Definition: saxhandler.h:21
Definition: saxfilter.h:60
Definition: saxfilter.h:20
Definition: saxfilter.h:76
Definition: saxfilter.h:44