00001
00002
00003 #ifndef _JOINPROLOG_H
00004 #define _JOINPROLOG_H
00005
00006 #include "xmlprolog.h"
00007 #include "reftype.h"
00008 #include "xmlsimpleprologentity.h"
00009 #include <string>
00010 #include <map>
00011 #include <vector>
00012
00015 class JoinProlog:public XmlProlog {
00016 std::map<DomId, Ref> dom2Ref;
00017
00018 protected:
00019
00020 std::list<XMLSimplePrologEntity> getNotations() const;
00021 std::list<XMLSimplePrologEntity> getSubDtds() const;
00022 std::list<XMLSimplePrologEntity> getSubDocs() const;
00023
00024 void analyzeProlog(const XMLSimpleProlog &);
00025
00026 public:
00027
00029 JoinProlog();
00030
00037 void addRefFitx(const RefType & type, const DomId & dom, const std::string & fitx, const bool system);
00038
00042 void removeRefFitx(const DomId & dom);
00043
00047 void removeRefFitx(const std::string & fitx);
00048
00053 std::string getRefFitx (const DomId & dom) const;
00054
00059 std::vector<std::string> getRefFitx (const RefType & type) const;
00060
00065 std::vector<DomId> getRefDom(const RefType & type) const;
00066
00067 };
00068 #endif //_JOINPROLOG_H