00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00022
00023
00024
00025
00026
00027
00028
00029 #ifndef XMLTagManager_INCLUDED
00030 #define XMLTagManager_INCLUDED
00031
00032 #include <iostream>
00033 #include <vector>
00034
00036
00037
00038
00039
00040
00042 class XMLTagNames
00043 {
00044
00045 private:
00046
00047 std::string _formatName;
00048 std::string _id;
00049 std::string _cellTag;
00050 std::string _tableTag;
00051 std::string _rowTag;
00052 std::string _columnTag;
00053 std::string _textTag;
00054 std::string _repeat;
00055 bool _cellHasChildXMLNode;
00056
00057 public:
00058
00059
00060
00061
00062 XMLTagNames(){}
00063 XMLTagNames( const char *formatName,const char *id,const char *cellTag,const char *tableTag,const char *rowTag,const char *columnTag,const char *textTag,const char *repeat,bool cellHasChildXMLNode);
00064
00065
00066
00067
00068 std::string getFormatName() const;
00069 std::string getId() const;
00070 std::string getCellTagName() const;
00071 std::string getTableTagName() const;
00072 std::string getRowTagName() const;
00073 std::string getColumnTagName() const;
00074 std::string getTextTagName() const;
00075 std::string getRepeatAttributeName() const;
00076 bool cellHasChildXMLNode() const;
00077 };
00078
00079
00081
00082
00083
00084
00085
00087 class XMLTagLoader;
00088 class XMLTagManager{
00089
00090 friend class XMLTagLoader;
00091
00092 private:
00093
00094 int _formatId;
00095
00096 static std::vector< XMLTagNames > _tags;
00097
00098
00099 public:
00100
00101
00102
00103
00104 XMLTagManager(){ _formatId= -1; };
00105 XMLTagManager(const std::string &data);
00106
00107 bool discoverFormat(const std::string &data);
00108
00109 std::string getFormatName() const;
00110 std::string getId() const;
00111 std::string getCellTagName() const;
00112 std::string getTableTagName() const;
00113 std::string getRowTagName() const;
00114 std::string getColumnTagName() const;
00115 std::string getTextTagName() const;
00116 std::string getRepeatAttributeName() const;
00117 bool cellHasChildXMLNode() const;
00118
00119 };
00120
00122
00123
00124
00125
00127 class XMLTagLoader{
00128
00129 public:
00130 static XMLTagLoader xmlTagLoader;
00131 XMLTagLoader(){
00132
00133 XMLTagManager::_tags.push_back(XMLTagNames("Madeline-XML","</madeline-xml>","d","table","row","col","","",false));
00134
00135 XMLTagManager::_tags.push_back(XMLTagNames("W3C XHTML","</html>","td","table","tr","","","",false));
00136
00137 XMLTagManager::_tags.push_back(XMLTagNames("OpenOffice.org OASIS","</office:document-content>","table-cell","table","table-row","table-col","p","number-columns-repeated",true));
00138
00139 XMLTagManager::_tags.push_back(XMLTagNames("Microsoft XML","</Workbook>","Cell","Table","Row","Column","Data","number-columns-repeated",true));
00140
00141 }
00142
00143 };
00144
00145 #endif