#ifndef XML_BASE
#define XML_BASE


//#include <QString>
#include <QXmlAttributes>

#include "file.h"

class VymModel;

/*! \brief Base class for parsing maps from XML documents */

class parseBaseHandler  : public QXmlDefaultHandler
{
public:
    parseBaseHandler();
    ~parseBaseHandler();
    QString errorProtocol();
    QString parseHREF(QString);
    virtual bool startElement ( const QString&, const QString&,
                        const QString& eName, const QXmlAttributes& atts )=0; 
    virtual bool   endElement ( const QString&, const QString&, const QString& )=0; 
    virtual bool characters   ( const QString&)=0;

    virtual QString errorString()=0;
    bool fatalError( const QXmlParseException&);
    void setModel (VymModel *);
    void setTmpDir (QString);
    void setInputFile ( const QString &);
    void setInputString ( const QString &);
    void setLoadMode (const LoadMode &,int p=-1);
    bool readHtmlAttr    (const QXmlAttributes&);

protected:
    QString     errorProt;

    LoadMode loadMode;
    int insertPos;

    bool isVymPart;
    int branchDepth; 
    VymModel *model;
    QString tmpDir; 
    QString inputFile;
    QString inputString;
    QString htmldata;
    QString version;
}; 
#endif
