private void PreprocessLocalElement(XmlSchemaElement element)
{
if (element.Name != null)
{
this.ValidateNameAttribute(element);
this.PreprocessElementContent(element);
element.SetQualifiedName(new XmlQualifiedName(element.Name, ((element.Form == XmlSchemaForm.Qualified) || ((element.Form == XmlSchemaForm.None) && (this.elementFormDefault == XmlSchemaForm.Qualified))) ? this.targetNamespace : null));
}
else
{
this.PreprocessAnnotation(element);
if (element.RefName.IsEmpty)
{
base.SendValidationEvent("Sch_ElementNameRef", element);
}
else
{
this.ValidateQNameAttribute(element, "ref", element.RefName);
}
if (((!element.SchemaTypeName.IsEmpty || element.HasAbstractAttribute) || ((element.Block != XmlSchemaDerivationMethod.None) || (element.SchemaType != null))) || ((element.HasConstraints || (element.DefaultValue != null)) || (((element.Form != XmlSchemaForm.None) || (element.FixedValue != null)) || element.HasNillableAttribute)))
{
base.SendValidationEvent("Sch_InvalidElementRef", element);
}
if ((element.DefaultValue != null) && (element.FixedValue != null))
{
base.SendValidationEvent("Sch_DefaultFixedAttributes", element);
}
element.SetQualifiedName(element.RefName);
}
if (element.MinOccurs > element.MaxOccurs)
{
element.MinOccurs = 0M;
base.SendValidationEvent("Sch_MinGtMax", element);
}
if (element.HasAbstractAttribute)
{
base.SendValidationEvent("Sch_ForbiddenAttribute", "abstract", element);
}
if (element.Final != XmlSchemaDerivationMethod.None)
{
base.SendValidationEvent("Sch_ForbiddenAttribute", "final", element);
}
if (!element.SubstitutionGroup.IsEmpty)
{
base.SendValidationEvent("Sch_ForbiddenAttribute", "substitutionGroup", element);
}
this.ValidateIdAttribute(element);
}