Author: borisk Date: Wed Jun 29 16:50:25 2011 New Revision: 1141163 URL: http://svn.apache.org/viewvc?rev=1141163&view=rev Log: Do not propagate prefix mappings to the included/imported/redefined schemas.
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=1141163&r1=1141162&r2=1141163&view=diff ============================================================================== --- xerces/c/trunk/src/xercesc/validators/schema/TraverseSchema.cpp (original) +++ xerces/c/trunk/src/xercesc/validators/schema/TraverseSchema.cpp Wed Jun 29 16:50:25 2011 @@ -376,20 +376,19 @@ void TraverseSchema::preprocessSchema(DO } SchemaInfo* currInfo = new (fMemoryManager) SchemaInfo(0, 0, 0, fTargetNSURI, - fSchemaInfo?fSchemaInfo->getNamespaceScope():NULL, + 0, schemaURL, fTargetNSURIString, schemaRoot, fScanner, fGrammarPoolMemoryManager); + currInfo->getNamespaceScope()->reset(fEmptyNamespaceURI); + // Add mapping for the xml prefix + currInfo->getNamespaceScope()->addPrefix(XMLUni::fgXMLString, fURIStringPool->addOrFind(XMLUni::fgXMLURIName)); + if (fSchemaInfo) fSchemaInfo->addSchemaInfo(currInfo, SchemaInfo::IMPORT); - else - { - currInfo->getNamespaceScope()->reset(fEmptyNamespaceURI); - // Add mapping for the xml prefix - currInfo->getNamespaceScope()->addPrefix(XMLUni::fgXMLString, fURIStringPool->addOrFind(XMLUni::fgXMLURIName)); - } + addImportedNS(currInfo->getTargetNSURI()); fSchemaInfo = currInfo; @@ -686,12 +685,16 @@ void TraverseSchema::preprocessInclude(c SchemaInfo* saveInfo = fSchemaInfo; fSchemaInfo = new (fMemoryManager) SchemaInfo(0, 0, 0, fTargetNSURI, - fSchemaInfo->getNamespaceScope(), + 0, includeURL, fTargetNSURIString, root, fScanner, fGrammarPoolMemoryManager); + fSchemaInfo->getNamespaceScope()->reset(fEmptyNamespaceURI); + // Add mapping for the xml prefix + fSchemaInfo->getNamespaceScope()->addPrefix(XMLUni::fgXMLString, fURIStringPool->addOrFind(XMLUni::fgXMLURIName)); + fSchemaInfoList->put((void*) fSchemaInfo->getCurrentSchemaURL(), fSchemaInfo->getTargetNSURI(), fSchemaInfo); fPreprocessedNodes->put((void*) elem, fSchemaInfo); @@ -8239,13 +8242,17 @@ bool TraverseSchema::openRedefinedSchema // -------------------------------------------------------- redefSchemaInfo = fSchemaInfo; Janitor<SchemaInfo> newSchemaInfo(new (fMemoryManager) SchemaInfo(0, 0, 0, fTargetNSURI, - fSchemaInfo->getNamespaceScope(), + 0, includeURL, fTargetNSURIString, root, fScanner, fGrammarPoolMemoryManager)); fSchemaInfo = newSchemaInfo.get(); + fSchemaInfo->getNamespaceScope()->reset(fEmptyNamespaceURI); + // Add mapping for the xml prefix + fSchemaInfo->getNamespaceScope()->addPrefix(XMLUni::fgXMLString, fURIStringPool->addOrFind(XMLUni::fgXMLURIName)); + traverseSchemaHeader(root); fSchemaInfoList->put((void*) fSchemaInfo->getCurrentSchemaURL(), fSchemaInfo->getTargetNSURI(), fSchemaInfo); newSchemaInfo.release(); --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@xerces.apache.org For additional commands, e-mail: commits-h...@xerces.apache.org