00001
00002 #ifndef AKAXISO2_FRAMEWORK_XMLTYPE_H__
00003 #define AKAXISO2_FRAMEWORK_XMLTYPE_H__
00004
00010 #include <akaxiso2/framework/qname.h>
00011 #include <typeinfo>
00012
00013 namespace aka2 {
00014
00019 template<class L>
00020 struct xmltype_statics {
00021
00026 static void xmltype(const std::string &name) {
00027 L::xmltype_ = aka2::qname(name);
00028 }
00029
00034 static std::string get_xmltype() {
00035 if (!L::xmltype_.empty())
00036 return L::xmltype_.qualified();
00037 return typeid(L).name();
00038 }
00039 static qname xmltype_;
00040 };
00041
00042 template<class L>
00043 qname xmltype_statics<L>::xmltype_;
00044 }
00045
00046 #endif