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: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]