diff --git a/src/xercesc/dom/deprecated/DOMParser.cpp b/src/xercesc/dom/deprecated/DOMParser.cpp
index f6643bc30bf360c302dc79f65856b10348eea72b..58b4aaa6427ff7253dfb14cf22884bb56978cf29 100644
--- a/src/xercesc/dom/deprecated/DOMParser.cpp
+++ b/src/xercesc/dom/deprecated/DOMParser.cpp
@@ -262,9 +262,7 @@ bool DOMParser::isUsingCachedGrammarInParse() const
 
 Grammar* DOMParser::getGrammar(const XMLCh* const nameSpaceKey)
 {
-    XMLSchemaDescription* gramDesc = fGrammarResolver->getGrammarPool()->createSchemaDescription(nameSpaceKey);
-    Janitor<XMLSchemaDescription> janName(gramDesc);
-    return fGrammarResolver->getGrammar(gramDesc);
+    return fGrammarResolver->getGrammar(nameSpaceKey);
 }
 
 Grammar* DOMParser::getRootGrammar()
diff --git a/src/xercesc/parsers/DOMBuilderImpl.cpp b/src/xercesc/parsers/DOMBuilderImpl.cpp
index 345157ba33fd419ead243be14a5e4ebacc785d6a..e408b31546194c935d64083205a2d14359e21f3f 100644
--- a/src/xercesc/parsers/DOMBuilderImpl.cpp
+++ b/src/xercesc/parsers/DOMBuilderImpl.cpp
@@ -635,9 +635,7 @@ void DOMBuilderImpl::resetCachedGrammarPool()
 
 Grammar* DOMBuilderImpl::getGrammar(const XMLCh* const nameSpaceKey) const
 {
-    XMLSchemaDescription* gramDesc = getGrammarResolver()->getGrammarPool()->createSchemaDescription(nameSpaceKey);
-    Janitor<XMLSchemaDescription> janName(gramDesc);
-    return getGrammarResolver()->getGrammar(gramDesc);
+    return getGrammarResolver()->getGrammar(nameSpaceKey);
 }
 
 Grammar* DOMBuilderImpl::getRootGrammar() const
diff --git a/src/xercesc/parsers/SAX2XMLReaderImpl.cpp b/src/xercesc/parsers/SAX2XMLReaderImpl.cpp
index c7c55897a042f8fe127f7051859713142f262e43..342200739d32b1bd15baa2c55ebda99f9e632100 100644
--- a/src/xercesc/parsers/SAX2XMLReaderImpl.cpp
+++ b/src/xercesc/parsers/SAX2XMLReaderImpl.cpp
@@ -56,6 +56,9 @@
 
 /*
  * $Log$
+ * Revision 1.25  2003/07/31 17:05:48  peiyongz
+ * using getGrammar(URI)
+ *
  * Revision 1.24  2003/07/10 19:48:24  peiyongz
  * Stateless Grammar: Initialize scanner with grammarResolver,
  *
@@ -1715,9 +1718,7 @@ void SAX2XMLReaderImpl::resetCachedGrammarPool()
 
 Grammar* SAX2XMLReaderImpl::getGrammar(const XMLCh* const nameSpaceKey)
 {
-    XMLSchemaDescription* gramDesc = fGrammarResolver->getGrammarPool()->createSchemaDescription(nameSpaceKey);
-    Janitor<XMLSchemaDescription> janName(gramDesc);
-    return fGrammarResolver->getGrammar(gramDesc);
+    return fGrammarResolver->getGrammar(nameSpaceKey);
 }
 
 
diff --git a/src/xercesc/parsers/SAXParser.cpp b/src/xercesc/parsers/SAXParser.cpp
index 1ece0f130d8e1613c9a7e103184d0d48b96c4075..811bba6e10e908522a5f93a8d7b36467b7018b86 100644
--- a/src/xercesc/parsers/SAXParser.cpp
+++ b/src/xercesc/parsers/SAXParser.cpp
@@ -56,6 +56,9 @@
 
 /*
  * $Log$
+ * Revision 1.23  2003/07/31 17:05:48  peiyongz
+ * using getGrammar(URI)
+ *
  * Revision 1.22  2003/07/10 19:48:24  peiyongz
  * Stateless Grammar: Initialize scanner with grammarResolver,
  *
@@ -521,9 +524,7 @@ bool SAXParser::getStandardUriConformant() const
 
 Grammar* SAXParser::getGrammar(const XMLCh* const nameSpaceKey)
 {
-    XMLSchemaDescription* gramDesc = fGrammarResolver->getGrammarPool()->createSchemaDescription(nameSpaceKey);
-    Janitor<XMLSchemaDescription> janName(gramDesc);
-    return fGrammarResolver->getGrammar(gramDesc);
+    return fGrammarResolver->getGrammar(nameSpaceKey);
 }
 
 Grammar* SAXParser::getRootGrammar()
diff --git a/src/xercesc/parsers/XercesDOMParser.cpp b/src/xercesc/parsers/XercesDOMParser.cpp
index 9790410ae17b32918224ca9fce3c262ac487e26f..d1d020eb9943eb69c65d564593ef58fb0390593b 100644
--- a/src/xercesc/parsers/XercesDOMParser.cpp
+++ b/src/xercesc/parsers/XercesDOMParser.cpp
@@ -117,9 +117,7 @@ bool XercesDOMParser::isUsingCachedGrammarInParse() const
 
 Grammar* XercesDOMParser::getGrammar(const XMLCh* const nameSpaceKey)
 {
-    XMLSchemaDescription* gramDesc = getGrammarResolver()->getGrammarPool()->createSchemaDescription(nameSpaceKey);
-    Janitor<XMLSchemaDescription> janName(gramDesc);
-    return getGrammarResolver()->getGrammar(gramDesc);
+    return getGrammarResolver()->getGrammar(nameSpaceKey);
 }
 
 Grammar* XercesDOMParser::getRootGrammar()