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 , ColonNotValidWithNS = 20
00037 , NotEnoughElemsForCM = 21
00038 , NoCharDataInCM = 22
00039 , DoesNotMatchEnumList = 23
00040 , AttrValNotName = 24
00041 , NoMultipleValues = 25
00042 , NotSameAsFixedValue = 26
00043 , RepElemInMixed = 27
00044 , NoValidatorFor = 28
00045 , IncorrectDatatype = 29
00046 , NotADatatype = 30
00047 , TextOnlyContentWithType = 31
00048 , FeatureUnsupported = 32
00049 , NestedOnlyInElemOnly = 33
00050 , EltRefOnlyInMixedElemOnly = 34
00051 , OnlyInEltContent = 35
00052 , OrderIsAll = 36
00053 , DatatypeWithType = 37
00054 , DatatypeQualUnsupported = 38
00055 , GroupContentRestricted = 39
00056 , UnknownBaseDatatype = 40
00057 , OneOfTypeRefArchRef = 41
00058 , NoContentForRef = 42
00059 , IncorrectDefaultType = 43
00060 , IllegalAttContent = 44
00061 , ValueNotInteger = 45
00062 , DatatypeError = 46
00063 , SchemaError = 47
00064 , TypeAlreadySet = 48
00065 , ProhibitedAttributePresent = 49
00066 , IllegalXMLSpace = 50
00067 , NotBoolean = 51
00068 , NotDecimal = 52
00069 , FacetsInconsistent = 53
00070 , IllegalFacetValue = 54
00071 , IllegalDecimalFacet = 55
00072 , UnknownFacet = 56
00073 , InvalidEnumValue = 57
00074 , OutOfBounds = 58
00075 , NotAnEnumValue = 59
00076 , NotInteger = 60
00077 , IllegalIntegerFacet = 61
00078 , NotReal = 62
00079 , IllegalRealFacet = 63
00080 , ScaleLargerThanPrecision = 64
00081 , PrecisionExceeded = 65
00082 , ScaleExceeded = 66
00083 , NotFloat = 67
00084 , SchemaRootError = 68
00085 , WrongTargetNamespace = 69
00086 , SimpleTypeHasChild = 70
00087 , NoDatatypeValidatorForSimpleType = 71
00088 , GrammarNotFound = 72
00089 , DisplayErrorMessage = 73
00090 , NillNotAllowed = 74
00091 , NilAttrNotEmpty = 75
00092 , FixedDifferentFromActual = 76
00093 , NoDatatypeValidatorForAttribute = 77
00094 , GenericError = 78
00095 , ElementNotQualified = 79
00096 , ElementNotUnQualified = 80
00097 , VC_IllegalRefInStandalone = 81
00098 , NoDefAttForStandalone = 82
00099 , NoAttNormForStandalone = 83
00100 , NoWSForStandalone = 84
00101 , VC_EntityNotFound = 85
00102 , PartialMarkupInPE = 86
00103 , DatatypeValidationFailure = 87
00104 , UniqueParticleAttributionFail = 88
00105 , NoAbstractInXsiType = 89
00106 , NoDirectUseAbstractElement = 90
00107 , NoUseAbstractType = 91
00108 , BadXsiType = 92
00109 , NonDerivedXsiType = 93
00110 , NoSubforBlock = 94
00111 , AttributeNotQualified = 95
00112 , AttributeNotUnQualified = 96
00113 , IC_FieldMultipleMatch = 97
00114 , IC_UnknownField = 98
00115 , IC_AbsentKeyValue = 99
00116 , IC_UniqueNotEnoughValues = 100
00117 , IC_KeyNotEnoughValues = 101
00118 , IC_KeyRefNotEnoughValues = 102
00119 , IC_KeyMatchesNillable = 103
00120 , IC_DuplicateUnique = 104
00121 , IC_DuplicateKey = 105
00122 , IC_KeyRefOutOfScope = 106
00123 , IC_KeyNotFound = 107
00124 , E_HighBounds = 108
00125 , W_LowBounds = 109
00126 , W_HighBounds = 110
00127 , F_LowBounds = 111
00128 , F_HighBounds = 112
00129 };
00130
00131 static bool isFatal(const XMLValid::Codes toCheck)
00132 {
00133 return ((toCheck >= F_LowBounds) && (toCheck <= F_HighBounds));
00134 }
00135
00136 static bool isWarning(const XMLValid::Codes toCheck)
00137 {
00138 return ((toCheck >= W_LowBounds) && (toCheck <= W_HighBounds));
00139 }
00140
00141 static bool isError(const XMLValid::Codes toCheck)
00142 {
00143 return ((toCheck >= E_LowBounds) && (toCheck <= E_HighBounds));
00144 }
00145
00146 static XMLErrorReporter::ErrTypes errorType(const XMLValid::Codes toCheck)
00147 {
00148 if ((toCheck >= W_LowBounds) && (toCheck <= W_HighBounds))
00149 return XMLErrorReporter::ErrType_Warning;
00150 else if ((toCheck >= F_LowBounds) && (toCheck <= F_HighBounds))
00151 return XMLErrorReporter::ErrType_Fatal;
00152 else if ((toCheck >= E_LowBounds) && (toCheck <= E_HighBounds))
00153 return XMLErrorReporter::ErrType_Error;
00154 return XMLErrorReporter::ErrTypes_Unknown;
00155 }
00156 };
00157
00158 XERCES_CPP_NAMESPACE_END
00159
00160 #endif
00161