Author: borisk
Date: Mon Nov 23 15:45:23 2009
New Revision: 883376

URL: http://svn.apache.org/viewvc?rev=883376&view=rev
Log:
Store the anonymous type count in the SchemaGrammar object.

Modified:
    xerces/c/trunk/src/xercesc/validators/schema/SchemaGrammar.cpp
    xerces/c/trunk/src/xercesc/validators/schema/SchemaGrammar.hpp
    xerces/c/trunk/src/xercesc/validators/schema/TraverseSchema.cpp

Modified: xerces/c/trunk/src/xercesc/validators/schema/SchemaGrammar.cpp
URL: 
http://svn.apache.org/viewvc/xerces/c/trunk/src/xercesc/validators/schema/SchemaGrammar.cpp?rev=883376&r1=883375&r2=883376&view=diff
==============================================================================
--- xerces/c/trunk/src/xercesc/validators/schema/SchemaGrammar.cpp (original)
+++ xerces/c/trunk/src/xercesc/validators/schema/SchemaGrammar.cpp Mon Nov 23 
15:45:23 2009
@@ -59,6 +59,7 @@
     , fValidated(false)
     , fDatatypeRegistry(manager)
     , fScopeCount (0)
+    , fAnonTypeCount (0)
 {
     CleanupType cleanup(this, &SchemaGrammar::cleanUp);
 

Modified: xerces/c/trunk/src/xercesc/validators/schema/SchemaGrammar.hpp
URL: 
http://svn.apache.org/viewvc/xerces/c/trunk/src/xercesc/validators/schema/SchemaGrammar.hpp?rev=883376&r1=883375&r2=883376&view=diff
==============================================================================
--- xerces/c/trunk/src/xercesc/validators/schema/SchemaGrammar.hpp (original)
+++ xerces/c/trunk/src/xercesc/validators/schema/SchemaGrammar.hpp Mon Nov 23 
15:45:23 2009
@@ -243,6 +243,12 @@
     unsigned int getScopeCount () const;
     void setScopeCount (unsigned int);
 
+    /**
+     * Get/set anonymous type count.
+     */
+    unsigned int getAnonTypeCount () const;
+    void setAnonTypeCount (unsigned int);
+
     /***
      * Support for Serialization/De-serialization
      ***/
@@ -334,6 +340,7 @@
     DatatypeValidatorFactory               fDatatypeRegistry;
 
     unsigned int                             fScopeCount;
+    unsigned int                             fAnonTypeCount;
 };
 
 
@@ -614,6 +621,18 @@
   fScopeCount = scopeCount;
 }
 
+inline unsigned int
+SchemaGrammar::getAnonTypeCount () const
+{
+  return fAnonTypeCount;
+}
+
+inline void
+SchemaGrammar::setAnonTypeCount (unsigned int count)
+{
+  fAnonTypeCount = count;
+}
+
 XERCES_CPP_NAMESPACE_END
 
 #endif

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=883376&r1=883375&r2=883376&view=diff
==============================================================================
--- xerces/c/trunk/src/xercesc/validators/schema/TraverseSchema.cpp (original)
+++ xerces/c/trunk/src/xercesc/validators/schema/TraverseSchema.cpp Mon Nov 23 
15:45:23 2009
@@ -169,7 +169,7 @@
     , fEmptyNamespaceURI(-1)
     , fCurrentScope(Grammar::TOP_LEVEL_SCOPE)
     , fScopeCount(schemaGrammar->getScopeCount ())
-    , fAnonXSTypeCount(0)
+    , fAnonXSTypeCount(schemaGrammar->getAnonTypeCount ())
     , fCircularCheckIndex(0)
     , fTargetNSURIString(0)
     , fDatatypeRegistry(0)
@@ -235,11 +235,12 @@
             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.
+            // Store the scope and anon type counts in case we need to add
+            // more to this grammar (multi-import case). schemaGrammar and
+            // fSchemaGrammar should be the same here.
             //
             fSchemaGrammar->setScopeCount (fScopeCount);
+            fSchemaGrammar->setAnonTypeCount (fAnonXSTypeCount);
         }
 
     }
@@ -885,6 +886,7 @@
             // --------------------------------------------------------
             SchemaInfo* saveInfo = fSchemaInfo;
             fSchemaGrammar->setScopeCount (fScopeCount);
+            fSchemaGrammar->setAnonTypeCount (fAnonXSTypeCount);
             if (grammarFound) {
                 fSchemaGrammar = (SchemaGrammar*) aGrammar;
             }
@@ -892,6 +894,8 @@
                 fSchemaGrammar = new (fGrammarPoolMemoryManager) 
SchemaGrammar(fGrammarPoolMemoryManager);
             }
             fScopeCount = fSchemaGrammar->getScopeCount ();
+            fAnonXSTypeCount = fSchemaGrammar->getAnonTypeCount ();
+
             XMLSchemaDescription* gramDesc = (XMLSchemaDescription*) 
fSchemaGrammar->getGrammarDescription();
             gramDesc->setContextType(XMLSchemaDescription::CONTEXT_IMPORT);
             gramDesc->setLocationHints(importURL);
@@ -6940,8 +6944,11 @@
         int targetNSURI = toRestore->getTargetNSURI();
 
         fSchemaGrammar->setScopeCount (fScopeCount);
+        fSchemaGrammar->setAnonTypeCount (fAnonXSTypeCount);
+
         fSchemaGrammar = (SchemaGrammar*) 
fGrammarResolver->getGrammar(toRestore->getTargetNSURIString());
         fScopeCount = fSchemaGrammar->getScopeCount ();
+        fAnonXSTypeCount = fSchemaGrammar->getAnonTypeCount ();
 
         fTargetNSURI = targetNSURI;
         fCurrentScope = saveScope;



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to