private XmlSchemaElement[] GetEquivalentElements(XmlSchemaElement element)
{
ArrayList equivalentElements = new ArrayList();
foreach (XmlSchema schema in Schemas.SchemaSet.Schemas())
{
for (int j = 0; j < schema.Items.Count; j++)
{
object item = schema.Items[j];
if (item is XmlSchemaElement)
{
XmlSchemaElement equivalentElement = (XmlSchemaElement)item;
if (!equivalentElement.IsAbstract &&
equivalentElement.SubstitutionGroup.Namespace == schema.TargetNamespace &&
equivalentElement.SubstitutionGroup.Name == element.Name)
{
equivalentElements.Add(equivalentElement);
}
}
}
}
return (XmlSchemaElement[])equivalentElements.ToArray(typeof(XmlSchemaElement));
}