00001
00002 #ifndef MIX_MISC_H_
00003 #define MIX_MISC_H_
00004
00009 #include "classes.h"
00010
00011 #include "DefaultTraits.h"
00012
00013 namespace MiX{
00020 enum NodeType{
00021 Node_Document = 0x40,
00022 Node_Element = 0x60,
00023 Node_Attribute = 0x30,
00024 Node_Text = 0x10,
00025 Node_Comment = 0x11,
00026
00027 Node_NodeContainer = 0x40,
00028 Node_NamedNode = 0x20,
00029 Node_Value = 0x10,
00030 };
00031
00033 enum ErrorType{
00034
00035 UnexpectedToken = 0,
00036 XMLDeclarationNotFound,
00037 InternalError,
00038 UnexpectedEOD,
00039 InvalidHandler,
00040 InvalidDeclaration,
00041 MismatchTag,
00042
00043 NullException,
00044 NodeNotFound,
00045 NodeDuplication,
00046 InvalidNodeFound
00047 };
00048
00050 template<class charT,class traitsT>
00051 void insertIndent(int i,XMLString<charT,traitsT>& str,charT c){
00052 for(int j=0;j<i;j++) str+=c;
00053 }
00054
00055
00056 #define MiX_Template_Typedef(C,T) typedef C char_type; \
00057 typedef T traits_type; \
00058 typedef typename T::char_traits char_traits; \
00059 typedef typename T::xml_traits xml_traits; \
00060 typedef Node<C,T> node_type; \
00061 typedef NodeContainer<C,T> nodecontainer_type; \
00062 typedef NamedNode<C,T> namednode_type; \
00063 typedef Value<C,T> value_type; \
00064 typedef Document<C,T> document_type; \
00065 typedef Element<C,T> element_type; \
00066 typedef Attribute<C,T> attribute_type; \
00067 typedef Text<C,T> text_type; \
00068 typedef Comment<C,T> comment_type; \
00069 typedef AttrMap<C,T> attrmap_type; \
00070 typedef XMLString<C,T> string_type; \
00071 typedef NodeList<C,T> nodelist_type;
00072 }
00073
00074 #endif