We are using Xerces 1.4.4 to validate and parse XML messages, using Hierarchical XSD Schemas (ie. Schemas importing other schemas).

The performance is dreadful. The schemas are very complex, but there isn't a lot we can do about that.

However, I believe that Xerces is parsing and validating the actual schemas each time we parse a message, and this is taking a large amount of the parse time.

My question is : is there anyway in Xerces (1.4.4 or 2.0) to cache the schemas so that they are not parsed and validated each time?

Failing this, are there any other parsers out there that are faster than Xerces, or capable of cacheing the XSDs?

I've tried the Oracle Parser, and this seems quite fast, and has an XSDBuilder class which can cache the schemas. However, the documentation/support is very poor, and we have found a number of bugs that we can't overcome.

Any help would be appreciated.

Richard Kenyon