public static IEnumerable <XmlSchemaElement> LocalXsdElements(this XmlSchema schema) { IEnumerator enumerator = schema.Elements.Values.GetEnumerator(); while (enumerator.MoveNext()) { XmlSchemaElement current = (XmlSchemaElement)enumerator.Current; foreach (XmlSchemaElement iteratorVariable1 in current.LocalXsdElements()) { yield return(iteratorVariable1); } } IEnumerator iteratorVariable9 = schema.SchemaTypes.Values.GetEnumerator(); while (iteratorVariable9.MoveNext()) { XmlSchemaType ty = (XmlSchemaType)iteratorVariable9.Current; foreach (XmlSchemaElement iteratorVariable3 in ty.LocalXsdElements()) { yield return(iteratorVariable3); } } IEnumerator iteratorVariable12 = schema.Groups.Values.GetEnumerator(); while (iteratorVariable12.MoveNext()) { XmlSchemaGroup gr = (XmlSchemaGroup)iteratorVariable12.Current; foreach (XmlSchemaElement iteratorVariable5 in gr.LocalXsdElements()) { yield return(iteratorVariable5); } } }