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