14 * Interface for XML attributes.
20 virtual ~ XMLAttributes ();
22 virtual int size () const = 0;
23 virtual const char * getName (int i) const = 0;
24 virtual const char * getValue (int i) const = 0;
26 virtual int findAttribute (const char * name) const;
27 virtual bool hasAttribute (const char * name) const;
28 virtual const char * getValue (const char * name) const;
33 * Default mutable attributes implementation.
35 class XMLAttributesDefault : public XMLAttributes
38 XMLAttributesDefault ();
39 XMLAttributesDefault (const XMLAttributes & atts);
40 virtual ~XMLAttributesDefault ();
42 virtual int size () const;
43 virtual const char * getName (int i) const;
44 virtual const char * getValue (int i) const;
46 virtual void addAttribute (const char * name, const char * value);
47 virtual void setName (int i, const char * name);
48 virtual void setValue (int i, const char * value);
49 virtual void setValue (const char * name, const char * value);
57 * Visitor class for an XML document.
59 * To read an XML document, a module must subclass the visitor to do
60 * something useful for the different XML events.
65 // start an XML document
66 virtual void startXML () {}
67 // end an XML document
68 virtual void endXML () {}
70 virtual void startElement (const char * name, const XMLAttributes &atts) {}
72 virtual void endElement (const char * name) {}
74 virtual void data (const char * s, int length) {}
75 // processing instruction
76 virtual void pi (const char * target, const char * data) {}
78 virtual void warning (const char * message, int line, int column) {}
80 virtual void error (const char * message, int line, int column) = 0;
85 * Read an XML document.
87 extern bool readXML (istream &input, XMLVisitor &visitor);
90 #endif // __EASYXML_HXX