cargilld    2004/02/11 04:42:50

  Modified:    c/src/xercesc/internal WFXMLScanner.cpp
  Log:
  Fix for bug 26131.
  
  Revision  Changes    Path
  1.20      +22 -18    xml-xerces/c/src/xercesc/internal/WFXMLScanner.cpp
  
  Index: WFXMLScanner.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/internal/WFXMLScanner.cpp,v
  retrieving revision 1.19
  retrieving revision 1.20
  diff -u -r1.19 -r1.20
  --- WFXMLScanner.cpp  29 Jan 2004 11:46:30 -0000      1.19
  +++ WFXMLScanner.cpp  11 Feb 2004 12:42:50 -0000      1.20
  @@ -1433,23 +1433,6 @@
                   }
               }
   
  -            // check for duplicate namespace attributes:
  -            // by checking for qualified names with the same local part and with 
prefixes 
  -            // which have been bound to namespace names that are identical. 
  -            XMLAttr* loopAttr;
  -            for (unsigned int attrIndex=0; attrIndex < attCount; attrIndex++) {
  -                loopAttr = fAttrList->elementAt(attrIndex);
  -                if (curAtt->getURIId() == loopAttr->getURIId() &&
  -                    XMLString::equals(curAtt->getName(), loopAttr->getName())) {
  -                    emitError
  -                    ( 
  -                        XMLErrs::AttrAlreadyUsedInSTag
  -                        , curAtt->getName()
  -                        , elemDecl->getFullName()
  -                    );
  -                }
  -            }  
  -
               // increment attribute count
               attCount++;
   
  @@ -1512,6 +1495,27 @@
               )
           );
       }
  +
  +    // check for duplicate namespace attributes:
  +    // by checking for qualified names with the same local part and with prefixes 
  +    // which have been bound to namespace names that are identical. 
  +    XMLAttr* loopAttr;
  +    XMLAttr* curAtt;
  +    for (unsigned int attrIndex=0; attrIndex < attCount-1; attrIndex++) {
  +        loopAttr = fAttrList->elementAt(attrIndex);
  +        for (unsigned int curAttrIndex = attrIndex+1; curAttrIndex < attCount; 
curAttrIndex++) {
  +            curAtt = fAttrList->elementAt(curAttrIndex);
  +            if (curAtt->getURIId() == loopAttr->getURIId() &&
  +                XMLString::equals(curAtt->getName(), loopAttr->getName())) {
  +                emitError
  +                ( 
  +                    XMLErrs::AttrAlreadyUsedInSTag
  +                        , curAtt->getName()
  +                        , elemDecl->getFullName()
  +                );
  +            }
  +        }
  +    }  
   
       // Resolve the qualified name to a URI.
       unsigned int uriId = resolvePrefix
  
  
  

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

Reply via email to