00001
00002
00003
00004
00005
00006
00014 #ifndef XMLOUTPUT_H
00015 #define XMLOUTPUT_H
00016
00017
00018 #include <string>
00019 #include <vector>
00020 #include <ostream>
00021
00022 #include "DictObjFile.h"
00023 #include "DictObjCont.h"
00024 #include "SchemaDataInfo.h"
00025 #include "SchemaParentChild.h"
00026 #include "Db.h"
00027 #include "DbOutput.h"
00028
00029
00038 class XmlOutput : public DbOutput
00039 {
00040 public:
00041 XmlOutput(Db& db, const std::string& dictObjFileName,
00042 const std::string& dictName,
00043 const std::string& ns = std::string());
00044 virtual ~XmlOutput();
00045
00046 void WriteSchema(const std::string& path = std::string());
00047 void WriteData(Block& block, const std::string& path = std::string());
00048
00049 protected:
00050 void _WriteTable(std::ostream& io, ISTable* tIn,
00051 std::vector<unsigned int>& widths,
00052 const bool reCalcWidth = false,
00053 const std::vector<eTypeCode>& typeCodes =
00054 std::vector<eTypeCode> (0));
00055
00056 private:
00057 static const std::string _BASE_SCHEMA_FILE;
00058
00059 std::string _ns;
00060
00061 SchemaDataInfo* _schemaDataInfoP;
00062 DictParentChild* _dictParentChildP;
00063
00064 DictObjFile* _dictObjFileP;
00065 DictObjCont* _dictObjContP;
00066 };
00067
00068 #endif