System.Xml.Schema.SchemaCollectionPreprocessor.CountGroupSelfReference C# (CSharp) Method

CountGroupSelfReference() private method

private CountGroupSelfReference ( XmlSchemaObjectCollection items, XmlQualifiedName name ) : int
items XmlSchemaObjectCollection
name XmlQualifiedName
return int
        private int CountGroupSelfReference(XmlSchemaObjectCollection items, XmlQualifiedName name) {
            int count = 0;
            foreach (XmlSchemaParticle particle in items) {
                if (particle is XmlSchemaGroupRef) {
                    XmlSchemaGroupRef groupRef = (XmlSchemaGroupRef)particle;
                    if (groupRef.RefName == name) {
                        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);
                }
                if (count > 1) {
                    break;
                }
            }
            return count;

        }