00001 /* libIXAml - IXA Taldea */ 00002 00003 #ifndef _PXMLDOC_H 00004 #define _PXMLDOC_H 00005 00006 #include "xmlsimpledoc.h" 00007 #include "domid.h" 00008 #include "pprolog.h" 00009 #include "teiheader.h" 00010 #include "pl.h" 00011 #include "p.h" 00012 #include <string> 00013 #include <fstream> 00014 00018 class PXMLDoc:public XMLSimpleDoc { 00019 00020 PProlog prolog; // XML fitxategiaren prolog-a 00021 DomId pDom; // Domeinuaren identifikatzailea <TEXT ID=domId> 00022 Hizkuntza lang; // Dokumentoaren hizkuntza 00023 PL pl; // Paragrafo lista 00024 00025 public: 00026 00028 PXMLDoc(); 00029 00033 PXMLDoc(const DomId & domId); 00034 00038 PXMLDoc(const PXMLDoc & pXmlDoc); 00039 00043 DomId getDom() const; 00044 00048 Hizkuntza getLang() const; 00049 00053 void putDom(const DomId & domId); 00054 00058 void putLang(const Hizkuntza & hiz); 00059 00063 PL getPList() const; 00064 00069 PId add(const P & p); 00070 00074 void remove(const P & p); 00075 00080 bool contains(const std::string & text); 00081 00084 void begin(); 00085 00088 void previous(); 00089 00092 void next(); 00093 00097 P current() const; 00098 00102 bool ready() const; 00103 00107 int getPosition() const; 00108 00109 private: 00110 00111 void writeDocument(XMLSimpleStruct*) const throw (char*); 00112 void readDocument(XMLSimpleStruct*) throw (char*); 00113 00114 }; 00115 00116 #endif //_PXMLDOC_H 00117