gareth 2002/12/31 08:35:41 Modified: c/src/xercesc/validators/schema TraverseSchema.cpp Log: DatatypeValidators anonymous flag was only being set if the validator was used twice in a schema. Revision Changes Path 1.46 +14 -12 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.45 retrieving revision 1.46 diff -u -r1.45 -r1.46 --- TraverseSchema.cpp 19 Dec 2002 14:06:37 -0000 1.45 +++ TraverseSchema.cpp 31 Dec 2002 16:35:40 -0000 1.46 @@ -1038,25 +1038,27 @@ popCurrentTypeNameStack(); return 0; } - - return traverseByList(childElem, content, name, fullName, finalSet); + + DatatypeValidator *tmpDV = traverseByList(childElem, content, name, fullName, finalSet); + if(nameEmpty) + tmpDV->setAnonymous(); + return tmpDV; } else if (XMLString::equals(varietyName, SchemaSymbols::fgELT_RESTRICTION)) { //traverse Restriction - return traverseByRestriction(childElem, content, name, fullName, finalSet); + DatatypeValidator *tmpDV = traverseByRestriction(childElem, content, name, fullName, finalSet); + if(nameEmpty) + tmpDV->setAnonymous(); + return tmpDV; } else if (XMLString::equals(varietyName, SchemaSymbols::fgELT_UNION)) { //traverse union - return traverseByUnion(childElem, content, name, fullName, finalSet, baseRefContext); + DatatypeValidator *tmpDV = traverseByUnion(childElem, content, name, fullName, finalSet, baseRefContext); + if(nameEmpty) + tmpDV->setAnonymous(); + return tmpDV; } else { reportSchemaError(content, XMLUni::fgXMLErrDomain, XMLErrs::FeatureUnsupported, varietyName); popCurrentTypeNameStack(); - } - } - - - if(dv) { - if(nameEmpty) { - dv->setAnonymous(); } }
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]