diff --git a/src/xercesc/validators/common/ContentSpecNode.cpp b/src/xercesc/validators/common/ContentSpecNode.cpp
index 8186b86c00682f31f202203326743954a19b04a4..26f29196db4607397b4b007269ae66da1b8556a5 100644
--- a/src/xercesc/validators/common/ContentSpecNode.cpp
+++ b/src/xercesc/validators/common/ContentSpecNode.cpp
@@ -264,8 +264,8 @@ int ContentSpecNode::getMaxTotalRange() const {
 
     int max = fMaxOccurs;
 
-    if (max == SchemaSymbols::UNBOUNDED) {
-         return SchemaSymbols::UNBOUNDED;
+    if (max == SchemaSymbols::XSD_UNBOUNDED) {
+         return SchemaSymbols::XSD_UNBOUNDED;
     }
 
     if (fType == ContentSpecNode::Sequence
@@ -274,16 +274,16 @@ int ContentSpecNode::getMaxTotalRange() const {
 
         int maxFirst = fFirst->getMaxTotalRange();
 
-        if (maxFirst == SchemaSymbols::UNBOUNDED) {
-             return SchemaSymbols::UNBOUNDED;
+        if (maxFirst == SchemaSymbols::XSD_UNBOUNDED) {
+             return SchemaSymbols::XSD_UNBOUNDED;
         }
 
         if (fSecond) {
 
             int maxSecond = fSecond->getMaxTotalRange();
 
-            if (maxSecond == SchemaSymbols::UNBOUNDED) {
-                return SchemaSymbols::UNBOUNDED;
+            if (maxSecond == SchemaSymbols::XSD_UNBOUNDED) {
+                return SchemaSymbols::XSD_UNBOUNDED;
             }
             else {
 
diff --git a/src/xercesc/validators/datatype/AnySimpleTypeDatatypeValidator.cpp b/src/xercesc/validators/datatype/AnySimpleTypeDatatypeValidator.cpp
index 0ec11e50ab8a0a39fcd9588f826bba37f5d932c3..fbed7be0554eef216ec61ad6bf8e8284e9f40b2c 100644
--- a/src/xercesc/validators/datatype/AnySimpleTypeDatatypeValidator.cpp
+++ b/src/xercesc/validators/datatype/AnySimpleTypeDatatypeValidator.cpp
@@ -56,6 +56,9 @@
 
 /*
  * $Log$
+ * Revision 1.5  2003/01/13 20:16:51  knoaman
+ * [Bug 16024] SchemaSymbols.hpp conflicts C++ Builder 6 dir.h
+ *
  * Revision 1.4  2002/12/18 14:17:55  gareth
  * Fix to bug #13438. When you eant a vector that calls delete[] on its members you should use RefArrayVectorOf.
  *
@@ -88,7 +91,7 @@ XERCES_CPP_NAMESPACE_BEGIN
 //  AnySimpleTypeDatatypeValidator: Constructors and Destructor
 // ---------------------------------------------------------------------------
 AnySimpleTypeDatatypeValidator::AnySimpleTypeDatatypeValidator()
-    : DatatypeValidator(0, 0, SchemaSymbols::RESTRICTION, DatatypeValidator::AnySimpleType)
+    : DatatypeValidator(0, 0, SchemaSymbols::XSD_RESTRICTION, DatatypeValidator::AnySimpleType)
 {
 
 }
diff --git a/src/xercesc/validators/schema/SchemaSymbols.hpp b/src/xercesc/validators/schema/SchemaSymbols.hpp
index e9e3c81c0d934c972cfd68427fc865cf83c15ca0..2c8911556fb12ff75c8b3f0a0b52e361f1e37001 100644
--- a/src/xercesc/validators/schema/SchemaSymbols.hpp
+++ b/src/xercesc/validators/schema/SchemaSymbols.hpp
@@ -249,27 +249,27 @@ public :
     static const int   fgINT_MAX_VALUE;
 
     enum {
-        EMPTY_SET = 0,
-        SUBSTITUTION = 1,
-        EXTENSION = 2,
-        RESTRICTION = 4,
-        LIST = 8,
-        UNION = 16,
-        ENUMERATION = 32
+        XSD_EMPTYSET = 0,
+        XSD_SUBSTITUTION = 1,
+        XSD_EXTENSION = 2,
+        XSD_RESTRICTION = 4,
+        XSD_LIST = 8,
+        XSD_UNION = 16,
+        XSD_ENUMERATION = 32
     };
 
     // group orders
     enum {
-        CHOICE = 0,
-        SEQUENCE= 1,
-        ALL = 2
+        XSD_CHOICE = 0,
+        XSD_SEQUENCE= 1,
+        XSD_ALL = 2
     };
 
     enum {
-        UNBOUNDED = -1,
-        NILLABLE = 1,
-        ABSTRACT = 2,
-        FIXED = 4
+        XSD_UNBOUNDED = -1,
+        XSD_NILLABLE = 1,
+        XSD_ABSTRACT = 2,
+        XSD_FIXED = 4
     };
 
 };
diff --git a/src/xercesc/validators/schema/SchemaValidator.cpp b/src/xercesc/validators/schema/SchemaValidator.cpp
index 7bc1e0ce7e53be2d07578594ade8061d5d32f1a5..534c0310e364d797fa8604469cbc31e1e55ef812 100644
--- a/src/xercesc/validators/schema/SchemaValidator.cpp
+++ b/src/xercesc/validators/schema/SchemaValidator.cpp
@@ -56,6 +56,9 @@
 
 /*
  * $Log$
+ * Revision 1.25  2003/01/13 20:16:51  knoaman
+ * [Bug 16024] SchemaSymbols.hpp conflicts C++ Builder 6 dir.h
+ *
  * Revision 1.24  2002/12/20 22:10:47  tng
  * XML 1.1
  *
@@ -458,7 +461,7 @@ int SchemaValidator::checkContent (XMLElementDecl* const elemDecl
                         else {
                             // this element has specified some value
                             // if the flag is FIXED, then this value must be same as default value
-                            if ((((SchemaElementDecl*)elemDecl)->getMiscFlags() & SchemaSymbols::FIXED) != 0) {
+                            if ((((SchemaElementDecl*)elemDecl)->getMiscFlags() & SchemaSymbols::XSD_FIXED) != 0) {
                                 if (fCurrentDV->compare(value, elemDefaultValue) != 0 )
                                     emitError(XMLValid::FixedDifferentFromActual, elemDecl->getFullName());
                             }
@@ -473,7 +476,7 @@ int SchemaValidator::checkContent (XMLElementDecl* const elemDecl
                     else {
                         // no default value, then check nillable
                         if (XMLString::equals(value, XMLUni::fgZeroLenString)) {
-                            if ((((SchemaElementDecl*)elemDecl)->getMiscFlags() & SchemaSymbols::NILLABLE) == 0)
+                            if ((((SchemaElementDecl*)elemDecl)->getMiscFlags() & SchemaSymbols::XSD_NILLABLE) == 0)
                                 fCurrentDV->validate(value);
                         }
                         else if (fNil) {
@@ -726,7 +729,7 @@ void SchemaValidator::validateElement(const   XMLElementDecl*  elemDef)
                         }
                         else {
                             // the type is derived from ancestor
-                            if (((SchemaElementDecl*)elemDef)->getBlockSet() == SchemaSymbols::RESTRICTION)
+                            if (((SchemaElementDecl*)elemDef)->getBlockSet() == SchemaSymbols::XSD_RESTRICTION)
                                 emitError(XMLValid::NoSubforBlock, fXsiType->getRawName(), elemDef->getFullName());
                             if (elemDef->hasAttDefs()) {
                                 // if we have an attribute but xsi:type's type is simple, we have a problem...
@@ -818,7 +821,7 @@ void SchemaValidator::validateElement(const   XMLElementDecl*  elemDef)
                             }
                             else {
                                 // the type is derived from ancestor
-                                if (((SchemaElementDecl*)elemDef)->getBlockSet() == SchemaSymbols::RESTRICTION)
+                                if (((SchemaElementDecl*)elemDef)->getBlockSet() == SchemaSymbols::XSD_RESTRICTION)
                                     emitError(XMLValid::NoSubforBlock, fXsiType->getRawName(), elemDef->getFullName());
                                 if (elemDef->hasAttDefs()) {
                                     // if we have an attribute but xsi:type's type is simple, we have a problem...
@@ -848,14 +851,14 @@ void SchemaValidator::validateElement(const   XMLElementDecl*  elemDef)
     // Check whether this element is abstract.  If so, an error
     //
     int miscFlags = ((SchemaElementDecl*)elemDef)->getMiscFlags();
-    if ((miscFlags & SchemaSymbols::ABSTRACT) != 0) {
+    if ((miscFlags & SchemaSymbols::XSD_ABSTRACT) != 0) {
         emitError(XMLValid::NoDirectUseAbstractElement, elemDef->getFullName());
     }
 
     //
     // Check whether this element allows Nillable
     //
-    if (fNil && (miscFlags & SchemaSymbols::NILLABLE) == 0 ) {
+    if (fNil && (miscFlags & SchemaSymbols::XSD_NILLABLE) == 0 ) {
         fNil = false;
         emitError(XMLValid::NillNotAllowed, elemDef->getFullName());
     }
@@ -1237,7 +1240,7 @@ void SchemaValidator::checkParticleDerivation(SchemaGrammar* const currentGramma
     ComplexTypeInfo* baseTypeInfo = 0;
     ContentSpecNode* curSpecNode = 0;
 
-    if (curTypeInfo->getDerivedBy() == SchemaSymbols::RESTRICTION
+    if (curTypeInfo->getDerivedBy() == SchemaSymbols::XSD_RESTRICTION
         && ((baseTypeInfo = curTypeInfo->getBaseComplexTypeInfo()) != 0)
         && ((curSpecNode = curTypeInfo->getContentSpec()) != 0)) {
 
@@ -1602,16 +1605,16 @@ SchemaValidator::checkNameAndTypeOK(SchemaGrammar* const currentGrammar,
     int derivedFlags = derivedElemDecl->getMiscFlags();
     int baseFlags = baseElemDecl->getMiscFlags();
 
-    if (((baseFlags & SchemaSymbols::NILLABLE) == 0) &&
-		((derivedFlags & SchemaSymbols::NILLABLE) != 0)) {
+    if (((baseFlags & SchemaSymbols::XSD_NILLABLE) == 0) &&
+		((derivedFlags & SchemaSymbols::XSD_NILLABLE) != 0)) {
         ThrowXML1(RuntimeException, XMLExcepts::PD_NameTypeOK2, derivedName);
     }
 
     const XMLCh* derivedDefVal = derivedElemDecl->getDefaultValue();
     const XMLCh* baseDefVal = baseElemDecl->getDefaultValue();
 
-    if (baseDefVal && (baseFlags & SchemaSymbols::FIXED) != 0 &&
-        ((derivedFlags & SchemaSymbols::FIXED) == 0 ||
+    if (baseDefVal && (baseFlags & SchemaSymbols::XSD_FIXED) != 0 &&
+        ((derivedFlags & SchemaSymbols::XSD_FIXED) == 0 ||
          !XMLString::equals(derivedDefVal, baseDefVal))) {
         ThrowXML1(RuntimeException, XMLExcepts::PD_NameTypeOK3, derivedName);
     }
@@ -1737,7 +1740,7 @@ SchemaValidator::checkTypesOK(const SchemaElementDecl* const derivedElemDecl,
         return;
 
     for (; rInfo && rInfo != bInfo; rInfo = rInfo->getBaseComplexTypeInfo()) {
-        if (rInfo->getDerivedBy() != SchemaSymbols::RESTRICTION) {
+        if (rInfo->getDerivedBy() != SchemaSymbols::XSD_RESTRICTION) {
 
             rInfo = 0;
             break;
@@ -2011,7 +2014,7 @@ SchemaValidator::checkMapAndSum(SchemaGrammar* const currentGrammar,
     int derivedMin = derivedSpecNode->getMinOccurs() * derivedCount;
     int derivedMax = derivedSpecNode->getMaxOccurs();
 
-    if (derivedMax != SchemaSymbols::UNBOUNDED) {
+    if (derivedMax != SchemaSymbols::XSD_UNBOUNDED) {
         derivedMax *= derivedCount;
     }
 
diff --git a/src/xercesc/validators/schema/SchemaValidator.hpp b/src/xercesc/validators/schema/SchemaValidator.hpp
index 14bde75f8cc2a6383008952d55a2ed2f0f55cd01..9268f40de68619bcc7b3d0534490863f3b0e83ad 100644
--- a/src/xercesc/validators/schema/SchemaValidator.hpp
+++ b/src/xercesc/validators/schema/SchemaValidator.hpp
@@ -56,6 +56,9 @@
 
 /*
  * $Log$
+ * Revision 1.12  2003/01/13 20:16:51  knoaman
+ * [Bug 16024] SchemaSymbols.hpp conflicts C++ Builder 6 dir.h
+ *
  * Revision 1.11  2003/01/09 22:34:54  tng
  * [Bug 14955] error validating parser.
  *
@@ -454,8 +457,8 @@ SchemaValidator::isOccurrenceRangeOK(const int min1, const int max1,
                                      const int min2, const int max2) {
 
     if (min1 >= min2 &&
-        (max2 == SchemaSymbols::UNBOUNDED ||
-         (max1 != SchemaSymbols::UNBOUNDED && max1 <= max2))) {
+        (max2 == SchemaSymbols::XSD_UNBOUNDED ||
+         (max1 != SchemaSymbols::XSD_UNBOUNDED && max1 <= max2))) {
         return true;
     }
     return false;
diff --git a/src/xercesc/validators/schema/SubstitutionGroupComparator.cpp b/src/xercesc/validators/schema/SubstitutionGroupComparator.cpp
index 8938cb3836279cebe9b30afecd9d0bf36d0b29c8..ba9cfe45f4d655f484f66e309cad4af353d5b3ee 100644
--- a/src/xercesc/validators/schema/SubstitutionGroupComparator.cpp
+++ b/src/xercesc/validators/schema/SubstitutionGroupComparator.cpp
@@ -56,6 +56,9 @@
 
 /*
  * $Log$
+ * Revision 1.6  2003/01/13 20:16:51  knoaman
+ * [Bug 16024] SchemaSymbols.hpp conflicts C++ Builder 6 dir.h
+ *
  * Revision 1.5  2002/11/04 14:49:42  tng
  * C++ Namespace Support.
  *
@@ -173,7 +176,7 @@ bool SubstitutionGroupComparator::isEquivalentTo(QName* const anElement
             (pElemDecl->getURI() == exemplar->getURI()))
         {
             // time to check for block value on element
-            if((pElemDecl->getBlockSet() & SchemaSymbols::SUBSTITUTION) != 0)
+            if((pElemDecl->getBlockSet() & SchemaSymbols::XSD_SUBSTITUTION) != 0)
                 return false;
 
             foundIt = true;
@@ -198,7 +201,7 @@ bool SubstitutionGroupComparator::isEquivalentTo(QName* const anElement
 
         return((anElementDV == 0) ||
             ((anElementDV == exemplarDV) ||
-            ((exemplarBlockSet & SchemaSymbols::RESTRICTION) == 0)));
+            ((exemplarBlockSet & SchemaSymbols::XSD_RESTRICTION) == 0)));
     }
 
     // now we have to make sure there are no blocks on the complexTypes that this is based upon
diff --git a/src/xercesc/validators/schema/TraverseSchema.cpp b/src/xercesc/validators/schema/TraverseSchema.cpp
index 6c67aaa3c3466765a61f44644801b699ce0664b6..299682ecbdcb26edcfeaa5fbd15c5689f5da4aab 100644
--- a/src/xercesc/validators/schema/TraverseSchema.cpp
+++ b/src/xercesc/validators/schema/TraverseSchema.cpp
@@ -1043,7 +1043,7 @@ TraverseSchema::traverseSimpleTypeDecl(const DOMElement* const childElem,
         // Remark: some code will be repeated in list|restriction| union but it
         //         is cleaner that way
         if (XMLString::equals(varietyName, SchemaSymbols::fgELT_LIST)) { //traverse List
-            if ((baseRefContext & SchemaSymbols::LIST) != 0) {
+            if ((baseRefContext & SchemaSymbols::XSD_LIST) != 0) {
 
                 reportSchemaError(content, XMLUni::fgXMLErrDomain, XMLErrs::AtomicItemType);
                 popCurrentTypeNameStack();
@@ -2397,7 +2397,7 @@ QName* TraverseSchema::traverseElementDecl(const DOMElement* const elem,
 
         if (subsGroupName && *subsGroupName) {
 
-            if (elemDecl->getMiscFlags() & SchemaSymbols::ABSTRACT )
+            if (elemDecl->getMiscFlags() & SchemaSymbols::XSD_ABSTRACT )
             {
                 reportSchemaError
                 (
@@ -2782,7 +2782,7 @@ TraverseSchema::traverseByList(const DOMElement* const rootElem,
         }
 
         if (XMLString::equals(content->getLocalName(), SchemaSymbols::fgELT_SIMPLETYPE)) {
-            baseValidator = checkForSimpleTypeValidator(content, SchemaSymbols::LIST);
+            baseValidator = checkForSimpleTypeValidator(content, SchemaSymbols::XSD_LIST);
         }
         else {
 
@@ -2795,7 +2795,7 @@ TraverseSchema::traverseByList(const DOMElement* const rootElem,
     }
     else { // base was provided - get proper validator
 
-        baseValidator = findDTValidator(contentElem, typeName, baseTypeName, SchemaSymbols::LIST);
+        baseValidator = findDTValidator(contentElem, typeName, baseTypeName, SchemaSymbols::XSD_LIST);
         content = checkContent(rootElem, XUtil::getFirstChildElement(contentElem), true);
     }
 
@@ -2880,7 +2880,7 @@ TraverseSchema::traverseByRestriction(const DOMElement* const rootElem,
     }
     else { // base was provided - get proper validator
 
-        baseValidator = findDTValidator(contentElem, typeName, baseTypeName, SchemaSymbols::RESTRICTION);
+        baseValidator = findDTValidator(contentElem, typeName, baseTypeName, SchemaSymbols::XSD_RESTRICTION);
         content = checkContent(rootElem, XUtil::getFirstChildElement(contentElem), true);
     }
 
@@ -3050,7 +3050,7 @@ TraverseSchema::traverseByUnion(const DOMElement* const rootElem,
 
             const XMLCh* memberTypeName = unionMembers.nextToken();
 
-            baseValidator = findDTValidator(contentElem, typeName, memberTypeName, SchemaSymbols::UNION);
+            baseValidator = findDTValidator(contentElem, typeName, memberTypeName, SchemaSymbols::XSD_UNION);
 
             if (baseValidator == 0) {
 
@@ -3087,7 +3087,7 @@ TraverseSchema::traverseByUnion(const DOMElement* const rootElem,
 
         if (XMLString::equals(content->getLocalName(), SchemaSymbols::fgELT_SIMPLETYPE)) {
 
-            baseValidator = checkForSimpleTypeValidator(content, baseRefContext | SchemaSymbols::UNION);
+            baseValidator = checkForSimpleTypeValidator(content, baseRefContext | SchemaSymbols::XSD_UNION);
 
             if (baseValidator == 0) {
 
@@ -3186,12 +3186,12 @@ void TraverseSchema::traverseSimpleContentDecl(const XMLCh* const typeName,
     if (XMLString::equals(contentName, SchemaSymbols::fgATTVAL_RESTRICTION)) {
 
         fAttributeCheck.checkAttributes(simpleContent, GeneralAttributeCheck::E_Restriction, this);
-        typeInfo->setDerivedBy(SchemaSymbols::RESTRICTION);
+        typeInfo->setDerivedBy(SchemaSymbols::XSD_RESTRICTION);
     }
     else if (XMLString::equals(contentName, SchemaSymbols::fgATTVAL_EXTENSION)) {
 
         fAttributeCheck.checkAttributes(simpleContent, GeneralAttributeCheck::E_Extension, this);
-        typeInfo->setDerivedBy(SchemaSymbols::EXTENSION);
+        typeInfo->setDerivedBy(SchemaSymbols::XSD_EXTENSION);
     }
     else {
         reportSchemaError(simpleContent, XMLUni::fgXMLErrDomain, XMLErrs::InvalidSimpleContent);
@@ -3217,7 +3217,7 @@ void TraverseSchema::traverseSimpleContentDecl(const XMLCh* const typeName,
     if (baseValidator != 0) {
 
         // check that the simpleType does not preclude derivation by extension
-        if ((baseValidator->getFinalSet() & SchemaSymbols::EXTENSION) == typeInfo->getDerivedBy()) {
+        if ((baseValidator->getFinalSet() & SchemaSymbols::XSD_EXTENSION) == typeInfo->getDerivedBy()) {
 
             reportSchemaError(simpleContent, XMLUni::fgXMLErrDomain, XMLErrs::DisallowedSimpleTypeExtension,
                               baseName, typeName);
@@ -3250,7 +3250,7 @@ void TraverseSchema::traverseSimpleContentDecl(const XMLCh* const typeName,
         if (baseTypeInfo->getContentType() != SchemaElementDecl::Simple) {
 
             // Schema Errata: E1-27
-            if (typeInfo->getDerivedBy() == SchemaSymbols::RESTRICTION
+            if (typeInfo->getDerivedBy() == SchemaSymbols::XSD_RESTRICTION
                 && ((baseTypeInfo->getContentType() == SchemaElementDecl::Mixed_Simple
                     || baseTypeInfo->getContentType() == SchemaElementDecl::Mixed_Complex)
                     && emptiableParticle(baseTypeInfo->getContentSpec()))) {
@@ -3274,7 +3274,7 @@ void TraverseSchema::traverseSimpleContentDecl(const XMLCh* const typeName,
     //Skip over any annotations in the restriction or extension elements
     DOMElement* content = checkContent(simpleContent, XUtil::getFirstChildElement(simpleContent), true);
 
-    if (typeInfo->getDerivedBy() == SchemaSymbols::RESTRICTION) {
+    if (typeInfo->getDerivedBy() == SchemaSymbols::XSD_RESTRICTION) {
 
         //Schema Spec: 5.11: Complex Type Definition Properties Correct: 2
         if (typeInfo->getBaseDatatypeValidator() != 0) {
@@ -3553,10 +3553,10 @@ void TraverseSchema::traverseComplexContentDecl(const XMLCh* const typeName,
     const XMLCh* const complexContentName = complexContent->getLocalName();
 
     if (XMLString::equals(complexContentName, SchemaSymbols::fgELT_RESTRICTION)) {
-        typeInfo->setDerivedBy(SchemaSymbols::RESTRICTION);
+        typeInfo->setDerivedBy(SchemaSymbols::XSD_RESTRICTION);
     }
     else if (XMLString::equals(complexContentName, SchemaSymbols::fgELT_EXTENSION)) {
-        typeInfo->setDerivedBy(SchemaSymbols::EXTENSION);
+        typeInfo->setDerivedBy(SchemaSymbols::XSD_EXTENSION);
     }
     else {
 
@@ -4569,7 +4569,7 @@ int TraverseSchema::parseBlockSet(const DOMElement* const elem,
 
     if (XMLString::equals(blockVal, SchemaSymbols::fgATTVAL_POUNDALL)) {
 
-        blockSet = SchemaSymbols::EXTENSION + SchemaSymbols::RESTRICTION + SchemaSymbols::SUBSTITUTION;
+        blockSet = SchemaSymbols::XSD_EXTENSION + SchemaSymbols::XSD_RESTRICTION + SchemaSymbols::XSD_SUBSTITUTION;
         return blockSet;
     }
 
@@ -4582,8 +4582,8 @@ int TraverseSchema::parseBlockSet(const DOMElement* const elem,
         if (XMLString::equals(token, SchemaSymbols::fgATTVAL_SUBSTITUTION)
 			&& blockType == ES_Block) {
 
-            if ((blockSet & SchemaSymbols::SUBSTITUTION) == 0 ) {
-                blockSet += SchemaSymbols::SUBSTITUTION;
+            if ((blockSet & SchemaSymbols::XSD_SUBSTITUTION) == 0 ) {
+                blockSet += SchemaSymbols::XSD_SUBSTITUTION;
             }
             else {
                 reportSchemaError(elem, XMLUni::fgXMLErrDomain, XMLErrs::SubstitutionRepeated);
@@ -4591,8 +4591,8 @@ int TraverseSchema::parseBlockSet(const DOMElement* const elem,
         }
         else if (XMLString::equals(token, SchemaSymbols::fgATTVAL_EXTENSION)) {
 
-            if ((blockSet & SchemaSymbols::EXTENSION) == 0) {
-                blockSet += SchemaSymbols::EXTENSION;
+            if ((blockSet & SchemaSymbols::XSD_EXTENSION) == 0) {
+                blockSet += SchemaSymbols::XSD_EXTENSION;
             }
             else {
                 reportSchemaError(elem, XMLUni::fgXMLErrDomain, XMLErrs::ExtensionRepeated);
@@ -4600,8 +4600,8 @@ int TraverseSchema::parseBlockSet(const DOMElement* const elem,
         }
         else if (XMLString::equals(token, SchemaSymbols::fgATTVAL_RESTRICTION)) {
 
-            if ((blockSet & SchemaSymbols::RESTRICTION) == 0 ) {
-                blockSet += SchemaSymbols::RESTRICTION;
+            if ((blockSet & SchemaSymbols::XSD_RESTRICTION) == 0 ) {
+                blockSet += SchemaSymbols::XSD_RESTRICTION;
             }
             else {
                 reportSchemaError(elem, XMLUni::fgXMLErrDomain, XMLErrs::RestrictionRepeated);
@@ -4629,8 +4629,8 @@ int TraverseSchema::parseFinalSet(const DOMElement* const elem,
 
     if (XMLString::equals(finalVal, SchemaSymbols::fgATTVAL_POUNDALL)) {
 
-        finalSet = SchemaSymbols::RESTRICTION + SchemaSymbols::LIST +
-                   SchemaSymbols::UNION + SchemaSymbols::EXTENSION;
+        finalSet = SchemaSymbols::XSD_RESTRICTION + SchemaSymbols::XSD_LIST +
+                   SchemaSymbols::XSD_UNION + SchemaSymbols::XSD_EXTENSION;
         return finalSet;
     }
 
@@ -4643,8 +4643,8 @@ int TraverseSchema::parseFinalSet(const DOMElement* const elem,
         if (XMLString::equals(token, SchemaSymbols::fgELT_UNION)
             && finalType == S_Final) {
 
-            if ((finalSet & SchemaSymbols::UNION) == 0) {
-                finalSet += SchemaSymbols::UNION;
+            if ((finalSet & SchemaSymbols::XSD_UNION) == 0) {
+                finalSet += SchemaSymbols::XSD_UNION;
             }
             else {
                 reportSchemaError(elem, XMLUni::fgXMLErrDomain, XMLErrs::UnionRepeated);
@@ -4653,8 +4653,8 @@ int TraverseSchema::parseFinalSet(const DOMElement* const elem,
         else if (XMLString::equals(token, SchemaSymbols::fgATTVAL_EXTENSION)
                  && finalType != S_Final) {
 
-            if ((finalSet & SchemaSymbols::EXTENSION) == 0) {
-                finalSet += SchemaSymbols::EXTENSION;
+            if ((finalSet & SchemaSymbols::XSD_EXTENSION) == 0) {
+                finalSet += SchemaSymbols::XSD_EXTENSION;
             }
             else {
                 reportSchemaError(elem, XMLUni::fgXMLErrDomain, XMLErrs::ExtensionRepeated);
@@ -4663,8 +4663,8 @@ int TraverseSchema::parseFinalSet(const DOMElement* const elem,
         else if (XMLString::equals(token, SchemaSymbols::fgELT_LIST)
                  && finalType == S_Final) {
 
-            if ((finalSet & SchemaSymbols::LIST) == 0 ) {
-                finalSet += SchemaSymbols::LIST;
+            if ((finalSet & SchemaSymbols::XSD_LIST) == 0 ) {
+                finalSet += SchemaSymbols::XSD_LIST;
             }
             else {
                 reportSchemaError(elem, XMLUni::fgXMLErrDomain, XMLErrs::ListRepeated);
@@ -4672,8 +4672,8 @@ int TraverseSchema::parseFinalSet(const DOMElement* const elem,
         }
         else if (XMLString::equals(token, SchemaSymbols::fgATTVAL_RESTRICTION)) {
 
-            if ((finalSet & SchemaSymbols::RESTRICTION) == 0 ) {
-                finalSet += SchemaSymbols::RESTRICTION;
+            if ((finalSet & SchemaSymbols::XSD_RESTRICTION) == 0 ) {
+                finalSet += SchemaSymbols::XSD_RESTRICTION;
             }
             else {
                 reportSchemaError(elem, XMLUni::fgXMLErrDomain, XMLErrs::RestrictionRepeated);
@@ -5055,7 +5055,7 @@ TraverseSchema::isSubstitutionGroupValid(const DOMElement* const elem,
         DatatypeValidator* subsValidator = subsElemDecl->getDatatypeValidator();
 
         if (subsValidator && subsValidator->isSubstitutableBy(validator)
-            && ((subsElemDecl->getFinalSet() & SchemaSymbols::RESTRICTION) == 0)) {
+            && ((subsElemDecl->getFinalSet() & SchemaSymbols::XSD_RESTRICTION) == 0)) {
                 return true;
         }
     }
@@ -5119,7 +5119,7 @@ TraverseSchema::createSchemaElementDecl(const DOMElement* const elem,
 
         if (XMLString::equals(nillable, SchemaSymbols::fgATTVAL_TRUE)
             || XMLString::equals(nillable, fgValueOne)) {
-            elementMiscFlags += SchemaSymbols::NILLABLE;
+            elementMiscFlags += SchemaSymbols::XSD_NILLABLE;
         }
     }
 
@@ -5127,12 +5127,12 @@ TraverseSchema::createSchemaElementDecl(const DOMElement* const elem,
 
         if (XMLString::equals(abstract, SchemaSymbols::fgATTVAL_TRUE)
             || XMLString::equals(abstract, fgValueOne)) {
-            elementMiscFlags += SchemaSymbols::ABSTRACT;
+            elementMiscFlags += SchemaSymbols::XSD_ABSTRACT;
         }
     }
 
     if (isFixedVal) {
-        elementMiscFlags += SchemaSymbols::FIXED;
+        elementMiscFlags += SchemaSymbols::XSD_FIXED;
     }
 
     const XMLCh* prefix = getPrefix(name);
@@ -5395,7 +5395,7 @@ void TraverseSchema::checkMinMax(ContentSpecNode* const specNode,
     bool isMaxUnbounded = XMLString::equals(maxOccursStr, fgUnbounded);
 
     if (isMaxUnbounded) {
-        maxOccurs = SchemaSymbols::UNBOUNDED;
+        maxOccurs = SchemaSymbols::XSD_UNBOUNDED;
         if (specNode)
             specNode->setMaxOccurs(maxOccurs);
     }
@@ -5492,7 +5492,7 @@ void TraverseSchema::processComplexContent(const DOMElement* const ctElem,
 
     if (baseTypeInfo) {
 
-        if (typeDerivedBy == SchemaSymbols::RESTRICTION) {
+        if (typeDerivedBy == SchemaSymbols::XSD_RESTRICTION) {
 
             // check to see if the baseType permits derivation by restriction
             if((baseTypeInfo->getFinalSet() & typeDerivedBy) != 0) {
@@ -5525,7 +5525,7 @@ void TraverseSchema::processComplexContent(const DOMElement* const ctElem,
             processElements(ctElem, baseTypeInfo, typeInfo);
         }
     }
-    else if (isBaseAnyType && typeDerivedBy == SchemaSymbols::EXTENSION && !isMixed) {
+    else if (isBaseAnyType && typeDerivedBy == SchemaSymbols::XSD_EXTENSION && !isMixed) {
 
         reportSchemaError(ctElem, XMLUni::fgXMLErrDomain, XMLErrs::MixedOrElementOnly, baseLocalPart, typeName);
         throw TraverseSchema::InvalidComplexTypeInfo; //REVISIT - should we continue
@@ -5599,7 +5599,7 @@ void TraverseSchema::processComplexContent(const DOMElement* const ctElem,
 
         ContentSpecNode* baseSpecNode = baseTypeInfo->getContentSpec();
 
-        if (typeDerivedBy == SchemaSymbols::RESTRICTION) {
+        if (typeDerivedBy == SchemaSymbols::XSD_RESTRICTION) {
 
             //check derivation valid - content type is empty (5.2)
             if (!typeInfo->getContentSpec()) {
@@ -5649,7 +5649,7 @@ void TraverseSchema::processComplexContent(const DOMElement* const ctElem,
     // -------------------------------------------------------------
     // Set the content type
     // -------------------------------------------------------------
-    if (isBaseAnyType && typeDerivedBy == SchemaSymbols::EXTENSION) {
+    if (isBaseAnyType && typeDerivedBy == SchemaSymbols::XSD_EXTENSION) {
 
         ContentSpecNode* anySpecNode = new ContentSpecNode(new QName(XMLUni::fgZeroLenString,
                                                                      XMLUni::fgZeroLenString,
@@ -5658,7 +5658,7 @@ void TraverseSchema::processComplexContent(const DOMElement* const ctElem,
 
         anySpecNode->setType(ContentSpecNode::Any_Lax);
         anySpecNode->setMinOccurs(0);
-        anySpecNode->setMaxOccurs(SchemaSymbols::UNBOUNDED);
+        anySpecNode->setMaxOccurs(SchemaSymbols::XSD_UNBOUNDED);
 
         if (!specNode) {
             typeInfo->setContentSpec(anySpecNode);
@@ -5988,7 +5988,7 @@ void TraverseSchema::processAttributes(const DOMElement* const elem,
     SchemaAttDef* baseAttWildCard = (baseTypeInfo) ? baseTypeInfo->getAttWildCard() : 0;
     Janitor<SchemaAttDef> janBaseAttWildCard(0);
 
-    if (derivedBy == SchemaSymbols::EXTENSION) {
+    if (derivedBy == SchemaSymbols::XSD_EXTENSION) {
 
         if (isBaseAnyType) {
 
@@ -6019,7 +6019,7 @@ void TraverseSchema::processAttributes(const DOMElement* const elem,
             reportSchemaError(elem, XMLUni::fgXMLErrDomain, XMLErrs::NotExpressibleWildCardIntersection);
         }
     }
-    else if (baseAttWildCard && derivedBy == SchemaSymbols::EXTENSION) {
+    else if (baseAttWildCard && derivedBy == SchemaSymbols::XSD_EXTENSION) {
 
         if (isBaseAnyType) {
 
@@ -6039,7 +6039,7 @@ void TraverseSchema::processAttributes(const DOMElement* const elem,
     bool baseWithAttributes = (baseTypeInfo && baseTypeInfo->hasAttDefs());
     bool childWithAttributes = (typeInfo->hasAttDefs() || typeInfo->getAttWildCard());
 
-    if (derivedBy == SchemaSymbols::RESTRICTION && childWithAttributes) {
+    if (derivedBy == SchemaSymbols::XSD_RESTRICTION && childWithAttributes) {
 
         if (!baseWithAttributes && !baseAttWildCard) {
             reportSchemaError(elem, XMLUni::fgXMLErrDomain, XMLErrs::BadAttDerivation_1);
@@ -6066,7 +6066,7 @@ void TraverseSchema::processAttributes(const DOMElement* const elem,
             // if found a duplicate, then skip the one from the base type
             if (typeInfo->getAttDef(localPart, attName->getURI()) != 0) {
 
-                if (derivedBy == SchemaSymbols::EXTENSION) {
+                if (derivedBy == SchemaSymbols::XSD_EXTENSION) {
                     reportSchemaError(elem, XMLUni::fgXMLErrDomain, XMLErrs::DuplicateAttInDerivation, localPart);
                 }
 
diff --git a/src/xercesc/validators/schema/TraverseSchema.hpp b/src/xercesc/validators/schema/TraverseSchema.hpp
index b4ab4a613e68999fe1ca67c1380874012fa09426..840c8813e358748b99c486454b8b8fb5190d3772 100644
--- a/src/xercesc/validators/schema/TraverseSchema.hpp
+++ b/src/xercesc/validators/schema/TraverseSchema.hpp
@@ -187,7 +187,7 @@ private:
                                                   const bool isMixed);
     DatatypeValidator*  traverseSimpleTypeDecl(const DOMElement* const childElem,
                                                const bool topLevel = true,
-                                               int baseRefContext = SchemaSymbols::EMPTY_SET);
+                                               int baseRefContext = SchemaSymbols::XSD_EMPTYSET);
     int                 traverseComplexTypeDecl(const DOMElement* const childElem,
                                                 const bool topLevel = true,
                                                 const XMLCh* const recursingTypeName = 0);
@@ -309,7 +309,7 @@ private:
       * Return a dataype validator if valid type, otherwise 0.
       */
     DatatypeValidator* checkForSimpleTypeValidator(const DOMElement* const content,
-                                                   int baseRefContext = SchemaSymbols::EMPTY_SET);
+                                                   int baseRefContext = SchemaSymbols::XSD_EMPTYSET);
 
     /**
       * Process complexType content of an element
diff --git a/src/xercesc/validators/schema/identity/XPathMatcher.cpp b/src/xercesc/validators/schema/identity/XPathMatcher.cpp
index 8605c96d68bc47a1185f684cacf4e70bdcc53cca..5c06307b07c68f1106f82fb2c6f77a907d83748c 100644
--- a/src/xercesc/validators/schema/identity/XPathMatcher.cpp
+++ b/src/xercesc/validators/schema/identity/XPathMatcher.cpp
@@ -56,6 +56,9 @@
 
 /*
  * $Log$
+ * Revision 1.6  2003/01/13 20:16:52  knoaman
+ * [Bug 16024] SchemaSymbols.hpp conflicts C++ Builder 6 dir.h
+ *
  * Revision 1.5  2003/01/13 16:30:19  knoaman
  * [Bug 14469] Validator doesn't enforce xsd:key.
  *
@@ -348,7 +351,7 @@ void XPathMatcher::endElement(const XMLElementDecl& elemDecl,
 				continue;
 
             DatatypeValidator* dv = ((SchemaElementDecl*) &elemDecl)->getDatatypeValidator();
-            bool isNillable = (((SchemaElementDecl *) &elemDecl)->getMiscFlags() & SchemaSymbols::NILLABLE) != 0;
+            bool isNillable = (((SchemaElementDecl *) &elemDecl)->getMiscFlags() & SchemaSymbols::XSD_NILLABLE) != 0;
 
             matched(elemContent, dv, isNillable);
             fMatched[i] = 0;