00001
00002 #ifndef MiX_MISC_H_
00003 #define MiX_MISC_H_
00004
00005
00006
00007
00008
00009
00010
00011
00012
00017 #include "classes.h"
00018
00019 #include "DefaultTraits.h"
00020
00021 namespace MiX{
00028 enum NodeType{
00029 Node_Document = 0x40,
00030 Node_Element = 0x60,
00031 Node_Attribute = 0x30,
00032 Node_Text = 0x10,
00033 Node_Comment = 0x11,
00034
00035 Node_NodeContainer = 0x40,
00036 Node_NamedNode = 0x20,
00037 Node_Value = 0x10,
00038 };
00039
00041 enum ErrorType{
00042
00043 UnexpectedToken = 0,
00044 XMLDeclarationNotFound,
00045 InternalError,
00046 UnexpectedEOD,
00047 InvalidHandler,
00048 InvalidDeclaration,
00049 MismatchTag,
00050
00051 NullException,
00052 NodeNotFound,
00053 NodeDuplication,
00054 InvalidNodeFound
00055 };
00056
00058 template<class charT,class traitsT>
00059 void insertIndent(int i,XMLString<charT,traitsT>& str,charT c){
00060 for(int j=0;j<i;j++) str+=c;
00061 }
00062
00063
00064 #define MiX_Template_Typedef(C,T,X) typedef C char_type; \
00065 typedef T char_traits_type; \
00066 typedef X xml_traits_type; \
00067 typedef Node<C,T,X> node_type; \
00068 typedef NodeContainer<C,T,X> nodecontainer_type; \
00069 typedef NamedNode<C,T,X> namednode_type; \
00070 typedef Value<C,T,X> value_type; \
00071 typedef Document<C,T,X> document_type; \
00072 typedef Element<C,T,X> element_type; \
00073 typedef Attribute<C,T,X> attribute_type; \
00074 typedef Text<C,T,X> text_type; \
00075 typedef Comment<C,T,X> comment_type; \
00076 typedef AttrMap<C,T,X> attrmap_type; \
00077 typedef XMLString<C,T,X> string_type; \
00078 typedef NodeList<C,T,X> nodelist_type; \
00079 typedef DOM_Exception<C,T,X> dom_exception_type
00080 }
00081
00082 #endif