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]