You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by bo...@apache.org on 2009/11/13 17:33:05 UTC

svn commit: r835905 - /xerces/c/trunk/src/xercesc/validators/schema/TraverseSchema.cpp

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: commits-unsubscribe@xerces.apache.org
For additional commands, e-mail: commits-help@xerces.apache.org