You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by ne...@apache.org on 2003/09/22 21:50:02 UTC

cvs commit: xml-xerces/c/src/xercesc/validators/schema TraverseSchema.cpp

neilg       2003/09/22 12:50:02

  Modified:    c/src/xercesc/validators/schema TraverseSchema.cpp
  Log:
  avoid using SchemaGrammar::fElemNonDeclPool; this is not necessary.
  
  Revision  Changes    Path
  1.86      +27 -10    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.85
  retrieving revision 1.86
  diff -u -r1.85 -r1.86
  --- TraverseSchema.cpp	13 Aug 2003 22:22:19 -0000	1.85
  +++ TraverseSchema.cpp	22 Sep 2003 19:50:02 -0000	1.86
  @@ -5064,7 +5064,6 @@
       SchemaInfo::ListType infoType = SchemaInfo::INCLUDE;
       int                  saveScope = fCurrentScope;
       unsigned int         uriId = fURIStringPool->addOrFind(nameURI);
  -    bool                 wasAdded = false;
   
       if (!XMLString::equals(nameURI, fTargetNSURIString)) {
   
  @@ -5075,8 +5074,14 @@
   
               noErrorDetected = false;
               reportSchemaError(elem, XMLUni::fgXMLErrDomain, XMLErrs::InvalidNSReference, nameURI);
  -            return (SchemaElementDecl*) fSchemaGrammar->findOrAddElemDecl(uriId, localPart, XMLUni::fgZeroLenString,
  -                                                     0, Grammar::TOP_LEVEL_SCOPE, wasAdded);
  +            SchemaElementDecl *retVal = (SchemaElementDecl*) fSchemaGrammar->getElemDecl(uriId, localPart, 
  +                                                     0, Grammar::TOP_LEVEL_SCOPE);
  +            // in a manner of speaking, we're lying to the grammar here;
  +            // the element really wasn't declared, but we need the decl to act
  +            // as a placeholder, so, in a way, it is declared for us
  +            return (retVal != 0?retVal:
  +                ((SchemaElementDecl*) fSchemaGrammar->putElemDecl(uriId, localPart, XMLUni::fgZeroLenString,
  +                                                     0, Grammar::TOP_LEVEL_SCOPE)));
           }
   
           Grammar* grammar = fGrammarResolver->getGrammar(nameURI);
  @@ -5089,8 +5094,14 @@
   
               noErrorDetected = false;
               reportSchemaError(elem, XMLUni::fgValidityDomain, XMLValid::GrammarNotFound, nameURI);
  -            return (SchemaElementDecl*) fSchemaGrammar->findOrAddElemDecl(uriId, localPart, XMLUni::fgZeroLenString,
  -                                                     0, Grammar::TOP_LEVEL_SCOPE, wasAdded);
  +            SchemaElementDecl *retVal = (SchemaElementDecl*) fSchemaGrammar->getElemDecl(uriId, localPart, 
  +                                                     0, Grammar::TOP_LEVEL_SCOPE);
  +            // in a manner of speaking, we're lying to the grammar here;
  +            // the element really wasn't declared, but we need the decl to act
  +            // as a placeholder, so, in a way, it is declared for us
  +            return (retVal != 0?retVal:
  +                ((SchemaElementDecl*) fSchemaGrammar->putElemDecl(uriId, localPart, XMLUni::fgZeroLenString,
  +                                                     0, Grammar::TOP_LEVEL_SCOPE)));
           }
   
           if (!elemDecl) {
  @@ -5101,8 +5112,11 @@
   
                   noErrorDetected = false;
                   reportSchemaError(elem, XMLUni::fgXMLErrDomain, XMLErrs::TypeNotFound, nameURI, localPart);
  -                return (SchemaElementDecl*) grammar->findOrAddElemDecl(uriId, localPart, XMLUni::fgZeroLenString,
  -                                                  0, Grammar::TOP_LEVEL_SCOPE, wasAdded);
  +                // in a manner of speaking, we're lying to the grammar here;
  +                // the element really wasn't declared, but we need the decl to act
  +                // as a placeholder, so, in a way, it is declared for us
  +                return ((SchemaElementDecl*) fSchemaGrammar->putElemDecl(uriId, localPart, XMLUni::fgZeroLenString,
  +                                                     0, Grammar::TOP_LEVEL_SCOPE));
               }
   
               infoType = SchemaInfo::IMPORT;
  @@ -5133,8 +5147,11 @@
   
               noErrorDetected = false;
               reportSchemaError(elem, XMLUni::fgXMLErrDomain, XMLErrs::TypeNotFound, nameURI, localPart);
  -            elemDecl = (SchemaElementDecl*) fSchemaGrammar->findOrAddElemDecl(uriId, localPart, XMLUni::fgZeroLenString,
  -                                                         0, Grammar::TOP_LEVEL_SCOPE, wasAdded);
  +            // in a manner of speaking, we're lying to the grammar here;
  +            // the element really wasn't declared, but we need the decl to act
  +            // as a placeholder, so, in a way, it is declared for us
  +            elemDecl = ((SchemaElementDecl*) fSchemaGrammar->putElemDecl(uriId, localPart, XMLUni::fgZeroLenString,
  +                                                 0, Grammar::TOP_LEVEL_SCOPE));
           }
       }
   
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-cvs-help@xml.apache.org