diff --git a/src/xercesc/validators/schema/TraverseSchema.cpp b/src/xercesc/validators/schema/TraverseSchema.cpp
index 2fa76d5d34afb1ab67ea5d048b8f8f4b146a01f4..0347fa7762ed9a6067ec182d10c2373e6655325c 100644
--- a/src/xercesc/validators/schema/TraverseSchema.cpp
+++ b/src/xercesc/validators/schema/TraverseSchema.cpp
@@ -1689,6 +1689,7 @@ TraverseSchema::traverseAny(const DOMElement* const elem) {
         ContentSpecNode* firstNode = 0;
         ContentSpecNode* secondNode = 0;
         unsigned int tokensSize = nameSpaceTokens->size();
+        DatatypeValidator* anyURIDV = fDatatypeRegistry->getDatatypeValidator(SchemaSymbols::fgDT_ANYURI);
 
         for (unsigned int i=0; i < tokensSize; i++) {
 
@@ -1701,6 +1702,12 @@ TraverseSchema::traverseAny(const DOMElement* const elem) {
                     uriIndex = fTargetNSURI;
                 }
                 else {
+                    try {
+                        anyURIDV->validate(tokenElem);
+                    }
+                    catch(const XMLException& excep) {
+                        reportSchemaError(elem, XMLUni::fgXMLErrDomain, XMLErrs::DisplayErrorMessage, excep.getMessage());
+                    }
                     uriIndex = fURIStringPool->addOrFind(tokenElem);
                 }
             }
@@ -3678,6 +3685,7 @@ SchemaAttDef* TraverseSchema::traverseAnyAttribute(const DOMElement* const elem)
     else {
 
         XMLStringTokenizer tokenizer(nameSpace);
+        DatatypeValidator* anyURIDV = fDatatypeRegistry->getDatatypeValidator(SchemaSymbols::fgDT_ANYURI);
 
         attType = XMLAttDef::Any_List;
 
@@ -3692,6 +3700,13 @@ SchemaAttDef* TraverseSchema::traverseAnyAttribute(const DOMElement* const elem)
                 uriIndex = fTargetNSURI;
             }
             else {
+
+                try {
+                    anyURIDV->validate(token);
+                }
+                catch(const XMLException& excep) {
+                    reportSchemaError(elem, XMLUni::fgXMLErrDomain, XMLErrs::DisplayErrorMessage, excep.getMessage());
+                }
                 uriIndex = fURIStringPool->addOrFind(token);
             }