00001
00002 #ifndef MIX_DEFAULTXMLTRAITS_H_
00003 #define MIX_DEFAULTXMLTRAITS_H_
00004
00005 #include <string>
00006 #include "config.h"
00007
00008 namespace MiX{
00015 template <class Char,class Traits>
00016 class DefaultXMLTraits{
00017 public:
00018 typedef MiX_STD::basic_string<Char,Traits> basic_string_type;
00019 private:
00020 static basic_string_type makeString(const char* szSrc);
00021
00022 public:
00024 static Char null(){ return static_cast<Char>('\0'); }
00026 static Char crlf(){ return static_cast<Char>('\n'); }
00028 static Char sp(){ return static_cast<Char>(' '); }
00030 static Char tab(){ return static_cast<Char>('\t'); }
00031
00033 static Char lt(){ return static_cast<Char>('<'); }
00035 static Char eq(){ return static_cast<Char>('='); }
00037 static Char gt(){ return static_cast<Char>('>'); }
00038
00040 static Char slash(){ return static_cast<Char>('/'); }
00042 static Char hyphen(){ return static_cast<Char>('-'); }
00044 static Char colon() { return static_cast<Char>(':'); }
00046 static Char semicolon(){ return static_cast<Char>(';'); }
00047
00049 static Char exclamation(){ return static_cast<Char>('!'); }
00051 static Char question(){ return static_cast<Char>('?'); }
00053 static Char amp(){ return static_cast<Char>('&'); }
00054
00056 static Char dblquote() { return static_cast<Char>('\"'); }
00058 static Char quote() { return static_cast<Char>('\''); }
00059
00060
00061
00063
00064 return makeString("xml");
00065 }
00067 static basic_string_type cdata(){
00068 return makeString("CDATA");
00069 }
00071 static basic_string_type str_lt(){
00072 return makeString("lt");
00073 }
00075 static basic_string_type str_gt(){
00076 return makeString("gt");
00077 }
00079 static basic_string_type str_amp(){
00080 return makeString("amp");
00081 }
00083 static basic_string_type str_quot(){
00084 return makeString("quot");
00085 }
00087 static basic_string_type str_apos(){
00088 return makeString("apos");
00089 }
00090
00092
00099 static int ci_compare(const Char* s1,const Char* s2,size_t n){
00100 for(size_t i=0;i<n;i++){
00101 int c1,c2;
00102 c1 = tolower(static_cast<int>(s1[i]));
00103 c2 = tolower(static_cast<int>(s2[i]));
00104 if(c1>c2) return 1;
00105 if(c1<c2) return -1;
00106 }
00107 return 0;
00108 }
00109
00110 };
00111 }
00112
00113 #ifndef MIX_DEFAULTXMLTRAITS_CPP_
00114 #include "DefaultXMLTraits.cpp"
00115 #endif
00116
00117 #endif