// This file is generated, don't edit it!!

#if !defined(ERRHEADER_XML4CExcepts)
#define ERRHEADER_XML4CExcepts

class XML4CExcepts
{
public :
    enum Codes
    {
        NoError                            = 0
      , E_LowBounds                        = 1
      , Array_BadIndex                     = 2
      , Array_BadNewSize                   = 3
      , Bitset_BadIndex                    = 4
      , CPtr_PointerIsZero                 = 5
      , Enum_NoMoreElements                = 6
      , File_CouldNotOpenFile              = 7
      , File_CouldNotGetCurPos             = 8
      , File_CouldNotCloseFile             = 9
      , File_CouldNotSeekToEnd             = 10
      , File_CouldNotSeekToPos             = 11
      , File_CouldNotDupHandle             = 12
      , File_CouldNotReadFromFile          = 13
      , File_CouldNotResetFile             = 14
      , File_CouldNotGetSize               = 15
      , File_CouldNotGetBasePathName       = 16
      , HshTbl_ZeroModulus                 = 17
      , HshTbl_BadHashFromKey              = 18
      , HshTbl_NoSuchKeyExists             = 19
      , Mutex_CouldNotCreate               = 20
      , Mutex_CouldNotClose                = 21
      , Mutex_CouldNotLock                 = 22
      , Mutex_CouldNotUnlock               = 23
      , Mutex_CouldNotDestroy              = 24
      , Pool_ElemAlreadyExists             = 25
      , Pool_BadHashFromKey                = 26
      , Pool_InvalidId                     = 27
      , Pool_ZeroModulus                   = 28
      , Stack_BadIndex                     = 29
      , Stack_EmptyStack                   = 30
      , Str_ZeroSizedTargetBuf             = 31
      , Str_UnknownRadix                   = 32
      , Str_TargetBufTooSmall              = 33
      , Str_StartIndexPastEnd              = 34
      , Strm_StdErrWriteFailure            = 35
      , Strm_StdOutWriteFailure            = 36
      , Strm_ConWriteFailure               = 37
      , StrPool_IllegalId                  = 38
      , URL_MalformedURL                   = 39
      , URL_UnsupportedProto               = 40
      , URL_UnsupportedProto1              = 41
      , URL_OnlyLocalHost                  = 42
      , URL_NoProtocolPresent              = 43
      , URL_ExpectingTwoSlashes            = 44
      , URL_IncorrectEscapedCharRef        = 45
      , URL_UnterminatedHostComponent      = 46
      , Vector_BadIndex                    = 47
      , Gen_ParseInProgress                = 48
      , Gen_NoDTDValidator                 = 49
      , Gen_CouldNotOpenDTD                = 50
      , Gen_CouldNotOpenExtEntity          = 51
      , Gen_UnexpectedEOF                  = 52
      , AttrList_BadIndex                  = 53
      , ElemStack_EmptyStack               = 54
      , ElemStack_BadIndex                 = 55
      , ElemStack_StackUnderflow           = 56
      , ElemStack_NoParentPushed           = 57
      , RdrMgr_ReaderIdNotFound            = 58
      , Reader_BadAutoEncoding             = 59
      , Reader_CantCreateCvtrFor           = 60
      , Reader_CouldNotDecodeFirstLine     = 61
      , Reader_EOIInMultiSeq               = 62
      , Reader_EncodingNeedsCvtr           = 63
      , Reader_BadUTF8Seq                  = 64
      , Reader_BadSurrogateInUTF8          = 65
      , Scan_CouldNotOpenSource            = 66
      , Scan_UnbalancedStartEnd            = 67
      , AttDef_BadAttType                  = 68
      , AttDef_BadDefAttType               = 69
      , BufMgr_NoMoreBuffers               = 70
      , BufMgr_BufferNotInPool             = 71
      , XMLRec_UnknownEncoding             = 72
      , Trans_CouldNotXCodeXMLData         = 73
      , Trans_CouldNotCreateDefCvtr        = 74
      , CM_BinOpHadUnaryType               = 75
      , CM_MustBeMixedOrChildren           = 76
      , CM_NoPCDATAHere                    = 77
      , CM_NotValidForSpecType             = 78
      , CM_UnaryOpHadBinType               = 79
      , CM_UnknownCMType                   = 80
      , CM_UnknownCMSpecType               = 81
      , Val_InvalidElemId                  = 82
      , Val_CantHaveIntSS                  = 83
      , Scan_BadPScanToken                 = 84
      , E_HighBounds                       = 85
      , W_LowBounds                        = 86
      , W_HighBounds                       = 87
      , V_LowBounds                        = 88
      , V_HighBounds                       = 89
    };

};
#endif

