00001 /* libIXAml - IXA Taldea */ 00002 00003 #ifndef _WXMLDOC_H 00004 #define _WXMLDOC_H 00005 00006 #include "xmlsimpledoc.h" 00007 #include "domid.h" 00008 #include "wprolog.h" 00009 #include "teiheader.h" 00010 #include "wl.h" 00011 #include "w.h" 00012 #include <string> 00013 #include <fstream> 00014 00018 class WXMLDoc:public XMLSimpleDoc { 00019 00020 DomId wDom; // Domeinuaren identifikatzailea <TEXT ID=domId> 00021 WProlog prolog; // XML fitxategiaren prolog-a 00022 WL wl; // Token lista 00023 00024 public: 00025 00027 WXMLDoc(); 00028 00032 WXMLDoc(const DomId & domId); 00033 00037 WXMLDoc(const WXMLDoc & wXmlDoc); 00038 00043 WId add(const W & w); 00044 00048 void remove(const W & w); 00049 00053 DomId getDom() const; 00054 00058 std::string getCorpusFitx() const; 00059 00063 WL getWList() const; 00064 00068 void putDom(const DomId & domId); 00069 00073 void putCorpusFitx(const std::string & fitx); 00074 00079 void putCorpusFitx(const std::string & fitx, DomId & domId); 00080 00084 void putWList(const WL & tl); 00085 00090 bool containsForma(const std::string & katea); 00091 00096 bool containsWId(const WId & wId); 00097 00102 std::vector<W> getWFromForma(const std::string & forma); 00103 00108 W getWFromWId(const WId & wId) const; 00109 00110 private: 00111 00112 void writeDocument(XMLSimpleStruct*) const throw (char*); 00113 void readDocument(XMLSimpleStruct*) throw (char*); 00114 00115 }; 00116 00117 #endif //_WXMLDOC_H