00001 /* libIXAml - IXA Taldea */ 00002 00003 #ifndef _TEIHEADER_H 00004 #define _TEIHEADER_H 00005 00006 #include "xmlsimplenode.h" 00007 #include "xmlsimplestruct.h" 00008 #include "hizkuntza.h" 00009 #include "fsddecl.h" 00010 #include <string> 00011 #include <vector> 00012 00017 struct Aldaketa { 00018 std::string nor; 00019 std::string ardura; 00020 std::string data; 00021 std::string deskribapena; 00022 XMLSimpleNode* encodingDesc; 00023 }; 00024 00029 class TEIHeader { 00030 std::string tituloa; // Dokumentuaren egilea 00031 std::string egilea; // Dokumentuaren tituloa 00032 std::string argitaratzaile; // Dokumentuaren argitaratzailea 00033 std::string idno; // Dokumentuaren id-zbk 00034 std::string iturria; // Dokumentu hau sortzeko erabili den iturria 00035 Hizkuntza hizkuntza; // Dokumentuaren hizkuntza 00036 std::vector<Aldaketa> aldaketak; // Dokumentuak izan dituen aldaketak 00037 std::vector <FSDDecl> fsdDeclL; // Dokumentuak izan ditzakeen FS moten definizioak 00038 00039 protected: 00040 00045 XMLSimpleNode* toTitleStmtXML(XMLSimpleStruct* xmlstruct) const; 00046 00051 XMLSimpleNode* toPublicationStmtXML(XMLSimpleStruct* xmlstruct) const; 00052 00057 XMLSimpleNode* toSourceDescXML(XMLSimpleStruct* xmlstruct) const; 00058 00063 XMLSimpleNode* toEncodingDescXML(XMLSimpleStruct* xmlstruct) const; 00064 00069 XMLSimpleNode* toProfileDescXML(XMLSimpleStruct* xmlstruct) const; 00070 00075 XMLSimpleNode* toRevisionDescXML(XMLSimpleStruct* xmlstruct) const; 00076 00082 XMLSimpleNode* toChangeXML(XMLSimpleStruct* xmlstruct,const Aldaketa & ald) const; 00083 00087 void initTitleStmt(XMLSimpleNode* item) throw (char*); 00088 00092 void initPublicationStmt(XMLSimpleNode* item) throw (char*); 00093 00097 void initSourceDesc(XMLSimpleNode* item) throw (char*); 00098 00102 void initEncodingDesc(XMLSimpleNode* item) throw (char*); 00103 00107 void initProfileDesc(XMLSimpleNode* item) throw (char*); 00108 00112 void initRevisionDesc(XMLSimpleNode* item) throw (char*); 00113 00118 Aldaketa initChange(XMLSimpleNode* item) throw (char*); 00119 00120 public: 00121 00124 TEIHeader(); 00125 00129 TEIHeader(const TEIHeader & th); 00130 00134 std::string getTituloa() const; 00135 00139 std::string getEgilea() const; 00140 00144 std::string getArgitaratzailea() const; 00145 00149 std::string getIdno() const; 00150 00154 std::string getIturria() const; 00155 00159 Hizkuntza getHizkuntza() const; 00160 00164 std::vector<Aldaketa> getAldaketak() const; 00165 00169 std::vector<FSDDecl> getFSDDecl() const; 00170 00174 void putTituloa(const std::string & tituloa); 00175 00179 void putEgilea(const std::string & egilea); 00180 00184 void putArgitaratzailea(const std::string & argi); 00185 00189 void putIdno(const std::string & idno); 00190 00194 void putIturria(const std::string & iturria); 00195 00199 void putHizkuntza(const Hizkuntza & hizkuntza); 00200 00204 void addAldaketa(const Aldaketa & alda); 00205 00209 void putFSDDecl(const std::vector<FSDDecl> & fsdDeclL); 00210 00214 void init(XMLSimpleNode* item) throw (char *); 00215 00220 XMLSimpleNode* toXML(XMLSimpleStruct* xmlstruct) const; 00221 00222 }; 00223 00224 #endif //_TEIHEADER_H