Author: borisk
Date: Wed Jun 29 16:48:30 2011
New Revision: 1141162
URL: http://svn.apache.org/viewvc?rev=1141162&view=rev
Log:
Do not propagate prefix mappings to the included/imported/redefined schemas.
Modified:
xerces/c/branches/xerces-3.1/src/xercesc/validators/schema/TraverseSchema.cpp
Modified:
xerces/c/branches/xerces-3.1/src/xercesc/validators/schema/TraverseSchema.cpp
URL:
http://svn.apache.org/viewvc/xerces/c/branches/xerces-3.1/src/xercesc/validators/schema/TraverseSchema.cpp?rev=1141162&r1=1141161&r2=1141162&view=diff
==============================================================================
---
xerces/c/branches/xerces-3.1/src/xercesc/validators/schema/TraverseSchema.cpp
(original)
+++
xerces/c/branches/xerces-3.1/src/xercesc/validators/schema/TraverseSchema.cpp
Wed Jun 29 16:48:30 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: [email protected]
For additional commands, e-mail: [email protected]