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]