neilg       2003/12/18 23:20:03

  Modified:    c/src/xercesc/internal IGXMLScanner.cpp SGXMLScanner.cpp
                        IGXMLScanner2.cpp
  Log:
  when validating a skipped element or attribute, we should not look for a declaration.
  
  Revision  Changes    Path
  1.52      +1 -6      xml-xerces/c/src/xercesc/internal/IGXMLScanner.cpp
  
  Index: IGXMLScanner.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/internal/IGXMLScanner.cpp,v
  retrieving revision 1.51
  retrieving revision 1.52
  diff -u -r1.51 -r1.52
  --- IGXMLScanner.cpp  17 Dec 2003 21:39:57 -0000      1.51
  +++ IGXMLScanner.cpp  19 Dec 2003 07:20:03 -0000      1.52
  @@ -2786,11 +2786,6 @@
               if(fGrammarType == Grammar::SchemaGrammarType)
               {
                   ((SchemaElementDecl *)(elemDecl))->setValidity(PSVIDefs::INVALID);
  -                if (getPSVIHandler())
  -                {
  -                    // REVISIT:                
  -                    // PSVIElement->setValidity(PSVIItem::VALIDITY_INVALID);
  -                }
               }
           }
       }
  
  
  
  1.69      +13 -15    xml-xerces/c/src/xercesc/internal/SGXMLScanner.cpp
  
  Index: SGXMLScanner.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/internal/SGXMLScanner.cpp,v
  retrieving revision 1.68
  retrieving revision 1.69
  diff -u -r1.68 -r1.69
  --- SGXMLScanner.cpp  17 Dec 2003 21:39:57 -0000      1.68
  +++ SGXMLScanner.cpp  19 Dec 2003 07:20:03 -0000      1.69
  @@ -2272,7 +2272,9 @@
       //  Ask the element to clear the 'provided' flag on all of the att defs
       //  that it owns, and to return us a boolean indicating whether it has
       //  any defs.
  -    ComplexTypeInfo *currType = 
((SchemaValidator*)fValidator)->getCurrentTypeInfo();
  +    ComplexTypeInfo *currType = (fValidate)
  +                ?((SchemaValidator*)fValidator)->getCurrentTypeInfo()
  +                :0;
       const bool hasDefs = (currType && fValidate) 
               ? currType->resetDefs()
               : elemDecl->resetDefs();
  @@ -2391,11 +2393,14 @@
                           //if schema, see if we should lax or skip the validation of 
this attribute
                           if (anyAttributeValidation(attWildCard, uriId, skipThisOne, 
laxThisOne)) {
   
  -                            SchemaGrammar* sGrammar = (SchemaGrammar*) 
fGrammarResolver->getGrammar(getURIText(uriId));
  -                            if (sGrammar && sGrammar->getGrammarType() == 
Grammar::SchemaGrammarType) {
  -                                RefHashTableOf<XMLAttDef>* attRegistry = 
sGrammar->getAttributeDeclRegistry();
  -                                if (attRegistry) {
  -                                    attDefForWildCard = attRegistry->get(suffPtr);
  +                            if(!skipThisOne)
  +                            {
  +                                SchemaGrammar* sGrammar = (SchemaGrammar*) 
fGrammarResolver->getGrammar(getURIText(uriId));
  +                                if (sGrammar && sGrammar->getGrammarType() == 
Grammar::SchemaGrammarType) {
  +                                    RefHashTableOf<XMLAttDef>* attRegistry = 
sGrammar->getAttributeDeclRegistry();
  +                                    if (attRegistry) {
  +                                        attDefForWildCard = 
attRegistry->get(suffPtr);
  +                                    }
                                   }
                               }
                           }
  @@ -2444,13 +2449,6 @@
                   }
               }
   
  -            //  Find this attribute within the parent element. We pass both
  -            //  the uriID/name and the raw QName buffer, since we don't know
  -            //  how the derived validator and its elements store attributes.
  -            if (!attDef) {
  -                attDef = ((SchemaElementDecl *)elemDecl)->getAttDef(suffPtr, uriId);
  -            }
  -
               // now need to prepare for duplicate detection
               if(attDef)
               {
  @@ -2595,7 +2593,7 @@
                       }
                   }
   
  -                if (fValidate && !skipThisOne) {
  +                if (fValidate ) {
                       fValidator->validateAttrValue
                       (
                           attDefForWildCard
  
  
  
  1.53      +14 -12    xml-xerces/c/src/xercesc/internal/IGXMLScanner2.cpp
  
  Index: IGXMLScanner2.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/internal/IGXMLScanner2.cpp,v
  retrieving revision 1.52
  retrieving revision 1.53
  diff -u -r1.52 -r1.53
  --- IGXMLScanner2.cpp 17 Dec 2003 00:18:34 -0000      1.52
  +++ IGXMLScanner2.cpp 19 Dec 2003 07:20:03 -0000      1.53
  @@ -124,7 +124,7 @@
       // know what's best.  REVISIT:  don't modify grammar at all; eliminate
       // this step...
       ComplexTypeInfo *currType = 0;
  -    if(fGrammar->getGrammarType() == Grammar::SchemaGrammarType)
  +    if(fGrammar->getGrammarType() == Grammar::SchemaGrammarType && fValidate)
           currType = ((SchemaValidator*)fValidator)->getCurrentTypeInfo();
       const bool hasDefs = (currType && fValidate)
               ? currType->resetDefs()
  @@ -245,11 +245,14 @@
                           //if schema, see if we should lax or skip the validation of 
this attribute
                           if (anyAttributeValidation(attWildCard, uriId, skipThisOne, 
laxThisOne)) {
   
  -                            SchemaGrammar* sGrammar = (SchemaGrammar*) 
fGrammarResolver->getGrammar(getURIText(uriId));
  -                            if (sGrammar && sGrammar->getGrammarType() == 
Grammar::SchemaGrammarType) {
  -                                RefHashTableOf<XMLAttDef>* attRegistry = 
sGrammar->getAttributeDeclRegistry();
  -                                if (attRegistry) {
  -                                    attDefForWildCard = attRegistry->get(suffPtr);
  +                            if(!skipThisOne)
  +                            {
  +                                SchemaGrammar* sGrammar = (SchemaGrammar*) 
fGrammarResolver->getGrammar(getURIText(uriId));
  +                                if (sGrammar && sGrammar->getGrammarType() == 
Grammar::SchemaGrammarType) {
  +                                    RefHashTableOf<XMLAttDef>* attRegistry = 
sGrammar->getAttributeDeclRegistry();
  +                                    if (attRegistry) {
  +                                        attDefForWildCard = 
attRegistry->get(suffPtr);
  +                                    }
                                   }
                               }
                           }
  @@ -307,10 +310,9 @@
               //  Find this attribute within the parent element. We pass both
               //  the uriID/name and the raw QName buffer, since we don't know
               //  how the derived validator and its elements store attributes.
  -            if (!attDef) {
  -                if(fGrammarType == Grammar::SchemaGrammarType) 
  -                    attDef = ((SchemaElementDecl *)elemDecl)->getAttDef( suffPtr , 
uriId);
  -                else 
  +            else
  +            {
  +                if(fGrammarType == Grammar::DTDGrammarType) 
                       attDef = ((DTDElementDecl *)elemDecl)->getAttDef ( namePtr);
               } 
   
  @@ -484,7 +486,7 @@
                       }
                   }
   
  -                if (fValidate && !skipThisOne) {
  +                if (fValidate ) {
                       fValidator->validateAttrValue
                       (
                           attDefForWildCard
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to