knoaman 2004/09/26 11:23:50 Modified: c/src/xercesc/internal IGXMLScanner2.cpp SGXMLScanner.cpp Log: [Bug 1197] Validation of anyType elements fail when XML attributes present Revision Changes Path 1.71 +11 -9 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.70 retrieving revision 1.71 diff -u -r1.70 -r1.71 --- IGXMLScanner2.cpp 20 Sep 2004 15:00:50 -0000 1.70 +++ IGXMLScanner2.cpp 26 Sep 2004 18:23:50 -0000 1.71 @@ -182,21 +182,23 @@ XMLAttDef* attDefForWildCard = 0; XMLAttDef* attDef = 0; - if (fGrammarType == Grammar::SchemaGrammarType && currType) { + if (fGrammarType == Grammar::SchemaGrammarType) { //retrieve the att def - attDef = currType->getAttDef(suffPtr, uriId); + SchemaAttDef* attWildCard; + if (currType) { + attDef = currType->getAttDef(suffPtr, uriId); + attWildCard = currType->getAttWildCard(); + } + else { // check explicitly-set wildcard + attWildCard = ((SchemaElementDecl*)elemDecl)->getAttWildCard(); + } // if not found or faulted in - check for a matching wildcard attribute // if no matching wildcard attribute, check (un)qualifed cases and flag // appropriate errors if (!attDef || (attDef->getCreateReason() == XMLAttDef::JustFaultIn)) { - SchemaAttDef* attWildCard = currType->getAttWildCard(); - if(!attWildCard) - // check explicitly-set wildcard - attWildCard = ((SchemaElementDecl*)elemDecl)->getAttWildCard(); - if (attWildCard) { //if schema, see if we should lax or skip the validation of this attribute if (anyAttributeValidation(attWildCard, uriId, skipThisOne, laxThisOne)) { @@ -213,7 +215,7 @@ } } } - else { + else if (currType) { // not found, see if the attDef should be qualified or not if (uriId == fEmptyNamespaceId) { attDef = currType->getAttDef(suffPtr 1.95 +11 -9 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.94 retrieving revision 1.95 diff -u -r1.94 -r1.95 --- SGXMLScanner.cpp 21 Sep 2004 16:10:47 -0000 1.94 +++ SGXMLScanner.cpp 26 Sep 2004 18:23:50 -0000 1.95 @@ -2183,21 +2183,23 @@ XMLAttDef* attDefForWildCard = 0; XMLAttDef* attDef = 0; - if (fGrammarType == Grammar::SchemaGrammarType && currType) { + if (fGrammarType == Grammar::SchemaGrammarType) { //retrieve the att def - attDef = currType->getAttDef(suffPtr, uriId); + SchemaAttDef* attWildCard; + if (currType) { + attDef = currType->getAttDef(suffPtr, uriId); + attWildCard = currType->getAttWildCard(); + } + else { // check explicitly-set wildcard + attWildCard = ((SchemaElementDecl*)elemDecl)->getAttWildCard(); + } // if not found or faulted in - check for a matching wildcard attribute // if no matching wildcard attribute, check (un)qualifed cases and flag // appropriate errors if (!attDef || (attDef->getCreateReason() == XMLAttDef::JustFaultIn)) { - SchemaAttDef* attWildCard = currType->getAttWildCard(); - if(!attWildCard) - // check explicitly-set wildcard - attWildCard = ((SchemaElementDecl*)elemDecl)->getAttWildCard(); - if (attWildCard) { //if schema, see if we should lax or skip the validation of this attribute if (anyAttributeValidation(attWildCard, uriId, skipThisOne, laxThisOne)) { @@ -2214,7 +2216,7 @@ } } } - else { + else if (currType) { // not found, see if the attDef should be qualified or not if (uriId == fEmptyNamespaceId) { attDef = currType->getAttDef(suffPtr, fURIStringPool->getId(fGrammar->getTargetNamespace()));
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]