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

Reply via email to