00001
00002
00003 #if !defined(ERRHEADER_XMLValid)
00004 #define ERRHEADER_XMLValid
00005
00006 #include <xercesc/framework/XMLErrorReporter.hpp>
00007 #include <xercesc/util/XercesDefs.hpp>
00008
00009 XERCES_CPP_NAMESPACE_BEGIN
00010
00011 class XMLValid
00012 {
00013 public :
00014 enum Codes
00015 {
00016 NoError = 0
00017 , E_LowBounds = 1
00018 , ElementNotDefined = 2
00019 , AttNotDefined = 3
00020 , NotationNotDeclared = 4
00021 , RootElemNotLikeDocType = 5
00022 , RequiredAttrNotProvided = 6
00023 , ElementNotValidForContent = 7
00024 , BadIDAttrDefType = 8
00025 , InvalidEmptyAttValue = 9
00026 , ElementAlreadyExists = 10
00027 , MultipleIdAttrs = 11
00028 , ReusedIDValue = 12
00029 , IDNotDeclared = 13
00030 , UnknownNotRefAttr = 14
00031 , UndeclaredElemInDocType = 15
00032 , EmptyNotValidForContent = 16
00033 , AttNotDefinedForElement = 17
00034 , BadEntityRefAttr = 18
00035 , UnknownEntityRefAttr = 19
00036 , NotEnoughElemsForCM = 20
00037 , NoCharDataInCM = 21
00038 , DoesNotMatchEnumList = 22
00039 , AttrValNotName = 23
00040 , NoMultipleValues = 24
00041 , NotSameAsFixedValue = 25
00042 , RepElemInMixed = 26
00043 , NoValidatorFor = 27
00044 , IncorrectDatatype = 28
00045 , NotADatatype = 29
00046 , TextOnlyContentWithType = 30
00047 , FeatureUnsupported = 31
00048 , NestedOnlyInElemOnly = 32
00049 , EltRefOnlyInMixedElemOnly = 33
00050 , OnlyInEltContent = 34
00051 , OrderIsAll = 35
00052 , DatatypeWithType = 36
00053 , DatatypeQualUnsupported = 37
00054 , GroupContentRestricted = 38
00055 , UnknownBaseDatatype = 39
00056 , OneOfTypeRefArchRef = 40
00057 , NoContentForRef = 41
00058 , IncorrectDefaultType = 42
00059 , IllegalAttContent = 43
00060 , ValueNotInteger = 44
00061 , DatatypeError = 45
00062 , SchemaError = 46
00063 , TypeAlreadySet = 47
00064 , ProhibitedAttributePresent = 48
00065 , IllegalXMLSpace = 49
00066 , NotBoolean = 50
00067 , NotDecimal = 51
00068 , FacetsInconsistent = 52
00069 , IllegalFacetValue = 53
00070 , IllegalDecimalFacet = 54
00071 , UnknownFacet = 55
00072 , InvalidEnumValue = 56
00073 , OutOfBounds = 57
00074 , NotAnEnumValue = 58
00075 , NotInteger = 59
00076 , IllegalIntegerFacet = 60
00077 , NotReal = 61
00078 , IllegalRealFacet = 62
00079 , ScaleLargerThanPrecision = 63
00080 , PrecisionExceeded = 64
00081 , ScaleExceeded = 65
00082 , NotFloat = 66
00083 , SchemaRootError = 67
00084 , WrongTargetNamespace = 68
00085 , SimpleTypeHasChild = 69
00086 , NoDatatypeValidatorForSimpleType = 70
00087 , GrammarNotFound = 71
00088 , DisplayErrorMessage = 72
00089 , NillNotAllowed = 73
00090 , NilAttrNotEmpty = 74
00091 , FixedDifferentFromActual = 75
00092 , NoDatatypeValidatorForAttribute = 76
00093 , GenericError = 77
00094 , ElementNotQualified = 78
00095 , ElementNotUnQualified = 79
00096 , VC_IllegalRefInStandalone = 80
00097 , NoDefAttForStandalone = 81
00098 , NoAttNormForStandalone = 82
00099 , NoWSForStandalone = 83
00100 , VC_EntityNotFound = 84
00101 , PartialMarkupInPE = 85
00102 , DatatypeValidationFailure = 86
00103 , UniqueParticleAttributionFail = 87
00104 , NoAbstractInXsiType = 88
00105 , NoDirectUseAbstractElement = 89
00106 , NoUseAbstractType = 90
00107 , BadXsiType = 91
00108 , NonDerivedXsiType = 92
00109 , NoSubforBlock = 93
00110 , AttributeNotQualified = 94
00111 , AttributeNotUnQualified = 95
00112 , IC_FieldMultipleMatch = 96
00113 , IC_UnknownField = 97
00114 , IC_AbsentKeyValue = 98
00115 , IC_UniqueNotEnoughValues = 99
00116 , IC_KeyNotEnoughValues = 100
00117 , IC_KeyRefNotEnoughValues = 101
00118 , IC_KeyMatchesNillable = 102
00119 , IC_DuplicateUnique = 103
00120 , IC_DuplicateKey = 104
00121 , IC_KeyRefOutOfScope = 105
00122 , IC_KeyNotFound = 106
00123 , E_HighBounds = 107
00124 , W_LowBounds = 108
00125 , W_HighBounds = 109
00126 , F_LowBounds = 110
00127 , F_HighBounds = 111
00128 };
00129
00130 static bool isFatal(const XMLValid::Codes toCheck)
00131 {
00132 return ((toCheck >= F_LowBounds) && (toCheck <= F_HighBounds));
00133 }
00134
00135 static bool isWarning(const XMLValid::Codes toCheck)
00136 {
00137 return ((toCheck >= W_LowBounds) && (toCheck <= W_HighBounds));
00138 }
00139
00140 static bool isError(const XMLValid::Codes toCheck)
00141 {
00142 return ((toCheck >= E_LowBounds) && (toCheck <= E_HighBounds));
00143 }
00144
00145 static XMLErrorReporter::ErrTypes errorType(const XMLValid::Codes toCheck)
00146 {
00147 if ((toCheck >= W_LowBounds) && (toCheck <= W_HighBounds))
00148 return XMLErrorReporter::ErrType_Warning;
00149 else if ((toCheck >= F_LowBounds) && (toCheck <= F_HighBounds))
00150 return XMLErrorReporter::ErrType_Fatal;
00151 else if ((toCheck >= E_LowBounds) && (toCheck <= E_HighBounds))
00152 return XMLErrorReporter::ErrType_Error;
00153 return XMLErrorReporter::ErrTypes_Unknown;
00154 }
00155 };
00156
00157 XERCES_CPP_NAMESPACE_END
00158
00159 #endif
00160