#if !defined( INCLUDED_XML_IXML_H ) #define INCLUDED_XML_IXML_H #include "itextstream.h" class XMLAttrVisitor { public: virtual void visit( const char* name, const char* value ) = 0; }; class XMLElement { public: virtual const char* name() const = 0; virtual const char* attribute( const char* name ) const = 0; virtual void forEachAttribute( XMLAttrVisitor& visitor ) const = 0; }; class XMLImporter : public TextOutputStream { public: static const char* getTypeName(){ return "XMLImporter"; } virtual void pushElement( const XMLElement& element ) = 0; virtual void popElement( const char* name ) = 0; }; class XMLExporter { public: static const char* getTypeName(){ return "XMLExporter"; } virtual void exportXML( XMLImporter& importer ) = 0; }; #endif