Author: borisk
Date: Fri Nov 13 16:33:05 2009
New Revision: 835905

URL: http://svn.apache.org/viewvc?rev=835905&view=rev
Log:
Call getDatatypeValidator before checking whether the schema has been imported.

Modified:
    xerces/c/trunk/src/xercesc/validators/schema/TraverseSchema.cpp

Modified: xerces/c/trunk/src/xercesc/validators/schema/TraverseSchema.cpp
URL: 
http://svn.apache.org/viewvc/xerces/c/trunk/src/xercesc/validators/schema/TraverseSchema.cpp?rev=835905&r1=835904&r2=835905&view=diff
==============================================================================
--- xerces/c/trunk/src/xercesc/validators/schema/TraverseSchema.cpp (original)
+++ xerces/c/trunk/src/xercesc/validators/schema/TraverseSchema.cpp Fri Nov 13 
16:33:05 2009
@@ -6486,26 +6486,22 @@
             baseComplexTypeInfo = getTypeInfoFromNS(elem, uriStr, localPart);
 
             if (!baseComplexTypeInfo) {
+
+              baseDTValidator = getDatatypeValidator(uriStr, localPart);
+
+              if (!baseDTValidator)
+              {
                 SchemaInfo* impInfo = 
fSchemaInfo->getImportInfo(fURIStringPool->addOrFind(uriStr));
 
-                if (!impInfo)
+                if (!impInfo || impInfo->getProcessed())
                 {
                     reportSchemaError(elem, XMLUni::fgXMLErrDomain, 
XMLErrs::BaseTypeNotFound, baseName);
                     throw TraverseSchema::InvalidComplexTypeInfo;
                 }
-                if (impInfo->getProcessed())
-                {
-                    // the schema has already been loaded, so check if it's a 
simple type before complaining
-                    baseDTValidator = getDatatypeValidator(uriStr, localPart);
-                    if(!baseDTValidator)
-                    {
-                        reportSchemaError(elem, XMLUni::fgXMLErrDomain, 
XMLErrs::BaseTypeNotFound, baseName);
-                        throw TraverseSchema::InvalidComplexTypeInfo;
-                    }
-                }
 
                 infoType = SchemaInfo::IMPORT;
                 restoreSchemaInfo(impInfo, infoType);
+              }
             }
         }
     }



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to