You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by pe...@apache.org on 2003/06/26 00:38:19 UTC
cvs commit: xml-xerces/c/src/xercesc/validators/schema SchemaValidator.cpp SubstitutionGroupComparator.cpp TraverseSchema.cpp
peiyongz 2003/06/25 15:38:19
Modified: c/src/xercesc/validators/schema SchemaValidator.cpp
SubstitutionGroupComparator.cpp TraverseSchema.cpp
Log:
to use new GrammarResolver::getGrammar()
Revision Changes Path
1.34 +10 -3 xml-xerces/c/src/xercesc/validators/schema/SchemaValidator.cpp
Index: SchemaValidator.cpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/schema/SchemaValidator.cpp,v
retrieving revision 1.33
retrieving revision 1.34
diff -u -r1.33 -r1.34
--- SchemaValidator.cpp 20 Jun 2003 19:03:03 -0000 1.33
+++ SchemaValidator.cpp 25 Jun 2003 22:38:18 -0000 1.34
@@ -56,6 +56,9 @@
/*
* $Log$
+ * Revision 1.34 2003/06/25 22:38:18 peiyongz
+ * to use new GrammarResolver::getGrammar()
+ *
* Revision 1.33 2003/06/20 19:03:03 peiyongz
* Stateless Grammar Pool :: Part I
*
@@ -246,6 +249,7 @@
#include <xercesc/util/Janitor.hpp>
#include <xercesc/util/KVStringPair.hpp>
#include <xercesc/framework/XMLDocumentHandler.hpp>
+#include <xercesc/framework/XMLSchemaDescription.hpp>
#include <xercesc/internal/XMLReader.hpp>
#include <xercesc/internal/XMLScanner.hpp>
#include <xercesc/internal/ElemStack.hpp>
@@ -789,8 +793,9 @@
// retrieve Grammar for the uri
const XMLCh* uriStr = getScanner()->getURIText(uri);
- SchemaGrammar* sGrammar = (SchemaGrammar*) fGrammarResolver->getGrammar(uriStr);
-
+ XMLSchemaDescription* gramDesc = fGrammarResolver->getGrammarPool()->createSchemaDescription(uriStr);
+ Janitor<XMLSchemaDescription> janName(gramDesc);
+ SchemaGrammar* sGrammar = (SchemaGrammar*) fGrammarResolver->getGrammar(gramDesc);
if (!sGrammar) {
// Check built-in simple types
@@ -1692,7 +1697,9 @@
const XMLCh* schemaURI = getScanner()->getURIStringPool()->getValueForId(derivedURI);
if (derivedURI != getScanner()->getEmptyNamespaceId()) {
- aGrammar= (SchemaGrammar*) fGrammarResolver->getGrammar(schemaURI);
+ XMLSchemaDescription* gramDesc = fGrammarResolver->getGrammarPool()->createSchemaDescription(schemaURI);
+ Janitor<XMLSchemaDescription> janName(gramDesc);
+ aGrammar= (SchemaGrammar*) fGrammarResolver->getGrammar(gramDesc);
}
if (!aGrammar) { //something is wrong
1.7 +8 -1 xml-xerces/c/src/xercesc/validators/schema/SubstitutionGroupComparator.cpp
Index: SubstitutionGroupComparator.cpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/schema/SubstitutionGroupComparator.cpp,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- SubstitutionGroupComparator.cpp 13 Jan 2003 20:16:51 -0000 1.6
+++ SubstitutionGroupComparator.cpp 25 Jun 2003 22:38:18 -0000 1.7
@@ -56,6 +56,9 @@
/*
* $Log$
+ * Revision 1.7 2003/06/25 22:38:18 peiyongz
+ * to use new GrammarResolver::getGrammar()
+ *
* Revision 1.6 2003/01/13 20:16:51 knoaman
* [Bug 16024] SchemaSymbols.hpp conflicts C++ Builder 6 dir.h
*
@@ -112,6 +115,8 @@
// ---------------------------------------------------------------------------
// Includes
// ---------------------------------------------------------------------------
+#include <xercesc/framework/XMLGrammarPool.hpp>
+#include <xercesc/framework/XMLSchemaDescription.hpp>
#include <xercesc/validators/schema/SubstitutionGroupComparator.hpp>
#include <xercesc/validators/common/Grammar.hpp>
#include <xercesc/validators/schema/SchemaGrammar.hpp>
@@ -159,7 +164,9 @@
if (!uri)
return false;
- SchemaGrammar *sGrammar = (SchemaGrammar*) fGrammarResolver->getGrammar(uri);
+ XMLSchemaDescription* gramDesc = fGrammarResolver->getGrammarPool()->createSchemaDescription(uri);
+ Janitor<XMLSchemaDescription> janName(gramDesc);
+ SchemaGrammar *sGrammar = (SchemaGrammar*) fGrammarResolver->getGrammar(gramDesc);
if (!sGrammar || sGrammar->getGrammarType() == Grammar::DTDGrammarType)
return false;
1.81 +58 -22 xml-xerces/c/src/xercesc/validators/schema/TraverseSchema.cpp
Index: TraverseSchema.cpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/schema/TraverseSchema.cpp,v
retrieving revision 1.80
retrieving revision 1.81
diff -u -r1.80 -r1.81
--- TraverseSchema.cpp 25 Jun 2003 19:32:55 -0000 1.80
+++ TraverseSchema.cpp 25 Jun 2003 22:38:19 -0000 1.81
@@ -377,6 +377,7 @@
fCurrentScope = Grammar::TOP_LEVEL_SCOPE;
fTargetNSURIString = fSchemaGrammar->getTargetNamespace();
fTargetNSURI = fURIStringPool->addOrFind(fTargetNSURIString);
+
XMLSchemaDescription* gramDesc = fGrammarResolver->getGrammarPool()->createSchemaDescription(fTargetNSURIString);
fGrammarResolver->putGrammar(gramDesc, fSchemaGrammar);
fAttributeCheck.setIDRefList(fSchemaGrammar->getIDRefList());
@@ -651,7 +652,15 @@
// ------------------------------------------------------------------
// Resolve namespace to a grammar
// ------------------------------------------------------------------
- Grammar* aGrammar = (nameSpace) ? fGrammarResolver->getGrammar(nameSpace) : 0;
+ Grammar* aGrammar = 0;
+
+ if (nameSpace)
+ {
+ XMLSchemaDescription* gramDesc = fGrammarResolver->getGrammarPool()->createSchemaDescription(nameSpace);
+ Janitor<XMLSchemaDescription> janName(gramDesc);
+ aGrammar = fGrammarResolver->getGrammar(gramDesc);
+ }
+
bool grammarFound = (aGrammar && (aGrammar->getGrammarType() == Grammar::SchemaGrammarType));
if (grammarFound) {
@@ -1622,7 +1631,9 @@
// ------------------------------------------------------------------
// Get grammar information
// ------------------------------------------------------------------
- Grammar* aGrammar = fGrammarResolver->getGrammar(uriStr);
+ XMLSchemaDescription* gramDesc = fGrammarResolver->getGrammarPool()->createSchemaDescription(uriStr);
+ Janitor<XMLSchemaDescription> janName(gramDesc);
+ Grammar* aGrammar = fGrammarResolver->getGrammar(gramDesc);
if (!aGrammar || aGrammar->getGrammarType() != Grammar::SchemaGrammarType) {
@@ -2532,8 +2543,9 @@
if (!subsElements && fTargetNSURI != subsElemURI) {
- SchemaGrammar* aGrammar = (SchemaGrammar*)
- fGrammarResolver->getGrammar(fURIStringPool->getValueForId(subsElemURI));
+ XMLSchemaDescription* gramDesc = fGrammarResolver->getGrammarPool()->createSchemaDescription(fURIStringPool->getValueForId(subsElemURI));
+ Janitor<XMLSchemaDescription> janName(gramDesc);
+ SchemaGrammar* aGrammar = (SchemaGrammar*) fGrammarResolver->getGrammar(gramDesc);
if (aGrammar) {
subsElements = aGrammar->getValidSubstitutionGroups()->get(subsElemBaseName, subsElemURI);
@@ -2564,8 +2576,9 @@
while (importingEnum.hasMoreElements()) {
const SchemaInfo& curRef = importingEnum.nextElement();
- SchemaGrammar* aGrammar = (SchemaGrammar*)
- fGrammarResolver->getGrammar(curRef.getTargetNSURIString());
+ XMLSchemaDescription* gramDesc = fGrammarResolver->getGrammarPool()->createSchemaDescription(curRef.getTargetNSURIString());
+ Janitor<XMLSchemaDescription> janName(gramDesc);
+ SchemaGrammar* aGrammar = (SchemaGrammar*) fGrammarResolver->getGrammar(gramDesc);
ValueVectorOf<SchemaElementDecl*>* subsElemList =
aGrammar->getValidSubstitutionGroups()->get(subsElemBaseName, subsElemURI);
@@ -2794,7 +2807,9 @@
return 0;
}
- Grammar* grammar = fGrammarResolver->getGrammar(uriStr);
+ XMLSchemaDescription* gramDesc = fGrammarResolver->getGrammarPool()->createSchemaDescription(uriStr);
+ Janitor<XMLSchemaDescription> janName(gramDesc);
+ Grammar* grammar = fGrammarResolver->getGrammar(gramDesc);
if (grammar == 0 || grammar->getGrammarType() != Grammar::SchemaGrammarType) {
@@ -4466,7 +4481,9 @@
if ((uriStr && *uriStr) && !XMLString::equals(uriStr, fTargetNSURIString)) {
- Grammar* grammar = fGrammarResolver->getGrammar(uriStr);
+ XMLSchemaDescription* gramDesc = fGrammarResolver->getGrammarPool()->createSchemaDescription(uriStr);
+ Janitor<XMLSchemaDescription> janName(gramDesc);
+ Grammar* grammar = fGrammarResolver->getGrammar(gramDesc);
if (grammar && grammar->getGrammarType() == Grammar::SchemaGrammarType) {
dv = ((SchemaGrammar*) grammar)->getDatatypeRegistry()->getDatatypeValidator(fBuffer.getRawBuffer());
@@ -4987,7 +5004,9 @@
if (!fSchemaInfo->isImportingNS(uriId))
return 0;
- Grammar* aGrammar = fGrammarResolver->getGrammar(typeURI);
+ XMLSchemaDescription* gramDesc = fGrammarResolver->getGrammarPool()->createSchemaDescription(typeURI);
+ Janitor<XMLSchemaDescription> janName(gramDesc);
+ Grammar* aGrammar = fGrammarResolver->getGrammar(gramDesc);
if (!aGrammar || aGrammar->getGrammarType() != Grammar::SchemaGrammarType) {
return 0;
@@ -5062,7 +5081,9 @@
0, Grammar::TOP_LEVEL_SCOPE, wasAdded);
}
- Grammar* grammar = fGrammarResolver->getGrammar(nameURI);
+ XMLSchemaDescription* gramDesc = fGrammarResolver->getGrammarPool()->createSchemaDescription(nameURI);
+ Janitor<XMLSchemaDescription> janName(gramDesc);
+ Grammar* grammar = fGrammarResolver->getGrammar(gramDesc);
if (grammar && grammar->getGrammarType() == Grammar::SchemaGrammarType) {
elemDecl = (SchemaElementDecl*)
@@ -5362,7 +5383,9 @@
return;
}
- Grammar* grammar = fGrammarResolver->getGrammar(uriStr);
+ XMLSchemaDescription* gramDesc = fGrammarResolver->getGrammarPool()->createSchemaDescription(uriStr);
+ Janitor<XMLSchemaDescription> janName(gramDesc);
+ Grammar* grammar = fGrammarResolver->getGrammar(gramDesc);
if (grammar == 0 || grammar->getGrammarType() != Grammar::SchemaGrammarType) {
@@ -6062,7 +6085,10 @@
const XMLCh* const uriStr,
const XMLCh* const localPart)
{
- Grammar* grammar = fGrammarResolver->getGrammar(uriStr);
+
+ XMLSchemaDescription* gramDesc = fGrammarResolver->getGrammarPool()->createSchemaDescription(uriStr);
+ Janitor<XMLSchemaDescription> janName(gramDesc);
+ Grammar* grammar = fGrammarResolver->getGrammar(gramDesc);
if (grammar != 0 && grammar->getGrammarType() == Grammar::SchemaGrammarType) {
@@ -6369,7 +6395,10 @@
fSchemaInfo->setScopeCount(fScopeCount);
int targetNSURI = toRestore->getTargetNSURI();
- fSchemaGrammar = (SchemaGrammar*) fGrammarResolver->getGrammar(toRestore->getTargetNSURIString());
+
+ XMLSchemaDescription* gramDesc = fGrammarResolver->getGrammarPool()->createSchemaDescription(toRestore->getTargetNSURIString());
+ Janitor<XMLSchemaDescription> janName(gramDesc);
+ fSchemaGrammar = (SchemaGrammar*) fGrammarResolver->getGrammar(gramDesc);
if (!fSchemaGrammar) {
return;
@@ -6465,8 +6494,9 @@
break; // an error must have occured
}
- SchemaGrammar* aGrammar = (SchemaGrammar*)
- fGrammarResolver->getGrammar(fURIStringPool->getValueForId(chainElemURI));
+ XMLSchemaDescription* gramDesc = fGrammarResolver->getGrammarPool()->createSchemaDescription(fURIStringPool->getValueForId(chainElemURI));
+ Janitor<XMLSchemaDescription> janName(gramDesc);
+ SchemaGrammar* aGrammar = (SchemaGrammar*) fGrammarResolver->getGrammar(gramDesc);
if (!aGrammar)
break;
@@ -6495,7 +6525,9 @@
while (importingEnum.hasMoreElements()) {
const SchemaInfo& curRef = importingEnum.nextElement();
- SchemaGrammar* aGrammar = (SchemaGrammar*) fGrammarResolver->getGrammar(curRef.getTargetNSURIString());
+ XMLSchemaDescription* gramDesc = fGrammarResolver->getGrammarPool()->createSchemaDescription(curRef.getTargetNSURIString());
+ Janitor<XMLSchemaDescription> janName(gramDesc);
+ SchemaGrammar* aGrammar = (SchemaGrammar*) fGrammarResolver->getGrammar(gramDesc);
ValueVectorOf<SchemaElementDecl*>* subsElemList =
aGrammar->getValidSubstitutionGroups()->get(chainElemName, chainElemURI);
@@ -6529,8 +6561,9 @@
return; // an error must have occured
}
- SchemaGrammar* aGrammar = (SchemaGrammar*)
- fGrammarResolver->getGrammar(fURIStringPool->getValueForId(subsElemURI));
+ XMLSchemaDescription* gramDesc = fGrammarResolver->getGrammarPool()->createSchemaDescription(fURIStringPool->getValueForId(subsElemURI));
+ Janitor<XMLSchemaDescription> janName(gramDesc);
+ SchemaGrammar* aGrammar = (SchemaGrammar*) fGrammarResolver->getGrammar(gramDesc);
if (!aGrammar)
return;
@@ -6616,7 +6649,9 @@
return 0;
}
- Grammar* aGrammar = fGrammarResolver->getGrammar(uriStr);
+ XMLSchemaDescription* gramDesc = fGrammarResolver->getGrammarPool()->createSchemaDescription(uriStr);
+ Janitor<XMLSchemaDescription> janName(gramDesc);
+ Grammar* aGrammar = fGrammarResolver->getGrammar(gramDesc);
if (!aGrammar || aGrammar->getGrammarType() != Grammar::SchemaGrammarType) {
@@ -6801,8 +6836,9 @@
if (elemURI != fTargetNSURI && elemURI != schemaURI && elemURI != fEmptyNamespaceURI) {
- Grammar* aGrammar =
- fGrammarResolver->getGrammar(fURIStringPool->getValueForId(elemURI));
+ XMLSchemaDescription* gramDesc = fGrammarResolver->getGrammarPool()->createSchemaDescription(fURIStringPool->getValueForId(elemURI));
+ Janitor<XMLSchemaDescription> janName(gramDesc);
+ Grammar* aGrammar = fGrammarResolver->getGrammar(gramDesc);
if (!aGrammar || aGrammar->getGrammarType() != Grammar::SchemaGrammarType) {
continue; // REVISIT - error message
---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-cvs-help@xml.apache.org