00001 /* -*- c++ -*- */ 00002 #ifndef AKAXISO2_XML_DESERIALIZER_DESERIALIZER_H__ 00003 #define AKAXISO2_XML_DESERIALIZER_DESERIALIZER_H__ 00004 00010 #include <akaxiso2/configuration.h> 00011 #include <akaxiso2/framework/document.h> 00012 #include <akaxiso2/util/iosfwd.h> 00013 00014 namespace aka2 { 00015 00019 class deserializer { 00020 public: 00021 deserializer(); 00022 virtual ~deserializer() {} 00023 00030 virtual document deserialize(std::istream &istm) = 0; 00031 00037 virtual document deserialize(const char *doc) = 0; 00038 00045 virtual document deserialize(const std::string &doc) = 0; 00046 00052 virtual document deserialize_stdin() = 0; 00053 00060 virtual document deserialize_file(const std::string &filename) = 0; 00061 00062 void set_entity_complements(entity_complements &ecomp); 00063 00064 protected: 00065 entity_complements *ecomp_; 00066 }; 00067 00075 document deserialize(std::istream &istm); 00076 00084 document deserialize(const char *doc); 00085 00093 document deserialize(const std::string &doc); 00094 00101 document deserialize_stdin(); 00102 00110 document deserialize_file(const std::string &filename); 00111 } // namespace aka2 00112 00113 #endif