private int CountGroupSelfReference(XmlSchemaObjectCollection items, XmlQualifiedName name, XmlSchemaGroup redefined) {
int count = 0;
foreach (XmlSchemaParticle particle in items) {
if (particle is XmlSchemaGroupRef) {
XmlSchemaGroupRef groupRef = (XmlSchemaGroupRef)particle;
if (groupRef.RefName == name) {
groupRef.Redefined = redefined;
if (groupRef.MinOccurs != decimal.One || groupRef.MaxOccurs != decimal.One) {
SendValidationEvent(Res.Sch_MinMaxGroupRedefine, groupRef);
}
count ++;
}
}
else if (particle is XmlSchemaGroupBase) {
count += CountGroupSelfReference(((XmlSchemaGroupBase)particle).Items, name, redefined);
}
if (count > 1) {
break;
}
}
return count;
}