diff --git a/src/xercesc/validators/schema/TraverseSchema.cpp b/src/xercesc/validators/schema/TraverseSchema.cpp index 66007473c57d83dd15c529352298f29cc61edafb..e39631f4072b3d18189db33f7f7d99fdea72fe9f 100644 --- a/src/xercesc/validators/schema/TraverseSchema.cpp +++ b/src/xercesc/validators/schema/TraverseSchema.cpp @@ -234,6 +234,12 @@ TraverseSchema::TraverseSchema( DOMElement* const schemaRoot preprocessSchema(schemaRoot, schemaURL, multipleImport); doTraverseSchema(schemaRoot); + + // Store the scope count in case we need to add more to this + // grammar (multi-import case). schemaGrammar and fSchemaGrammar + // should be the same here. + // + fSchemaGrammar->setScopeCount (fScopeCount); } } @@ -291,7 +297,6 @@ void TraverseSchema::doTraverseSchema(const DOMElement* const schemaRoot) { void TraverseSchema::preprocessSchema(DOMElement* const schemaRoot, const XMLCh* const schemaURL, bool multipleImport) { - if (!multipleImport) { // Make sure namespace binding is defaulted const XMLCh* rootPrefix = schemaRoot->getPrefix();