SchemaInfo::getTopLevelComponent causing validation to take over 10 minutes
---------------------------------------------------------------------------

         Key: XERCESC-1542
         URL: http://issues.apache.org/jira/browse/XERCESC-1542
     Project: Xerces-C++
        Type: Improvement
  Components: Validating Parser (Schema) (Xerces 1.5 or up only)  
 Environment: Windows XP, Microsoft Visual C++ 6.0
    Reporter: Joe Milane


The high the performance costs of validation (over ten minutes in this case) 
can be attributed to the call to getTopLevelComponent on line 135 of 
SchemaInfo.cpp in xerces-c-src2_7_0 (its where the version of 
getTopLevelComponent with three arguments calls the version with four 
arguments). By commenting out that call, the validation process takes around 
ten seconds instead of over ten minutes (10 seconds is around how long it takes 
using another parser). The loop on lines 172 through 177 is apparently 
responsible for the bulk of the time within the call to getTopLevelComponent. 
 
The return value for the call to getTopLevelComponent on line 135 is always 0 
when it is not commented out. Also, we do have appropriate validation errors 
when we add bugs to the XML file and the call is commented out. The outer 
getTopLevelComponent call that is calling this function is going through each 
element of each schema, but so far I have added errors to the included schemas 
both with and without commenting line 135 out and the file still validates. 

If the performance costs are unavoidable, is there some way to prevent this 
code from being executed (i.e. is it optional)? For our purposes there is a 
guarantee that the schemas will be valid. 

Thanks,
Joe


-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to