private void PreprocessElementContent(XmlSchemaElement element)
{
this.PreprocessAnnotation(element);
if (!element.RefName.IsEmpty)
{
base.SendValidationEvent("Sch_ForbiddenAttribute", "ref", element);
}
if (element.Block == XmlSchemaDerivationMethod.All)
{
element.SetBlockResolved(XmlSchemaDerivationMethod.All);
}
else if (element.Block == XmlSchemaDerivationMethod.None)
{
if (this.blockDefault == XmlSchemaDerivationMethod.All)
{
element.SetBlockResolved(XmlSchemaDerivationMethod.All);
}
else
{
element.SetBlockResolved(this.blockDefault & (XmlSchemaDerivationMethod.Restriction | XmlSchemaDerivationMethod.Extension | XmlSchemaDerivationMethod.Substitution));
}
}
else
{
if ((element.Block & ~(XmlSchemaDerivationMethod.Restriction | XmlSchemaDerivationMethod.Extension | XmlSchemaDerivationMethod.Substitution)) != XmlSchemaDerivationMethod.Empty)
{
base.SendValidationEvent("Sch_InvalidElementBlockValue", element);
}
element.SetBlockResolved(element.Block & (XmlSchemaDerivationMethod.Restriction | XmlSchemaDerivationMethod.Extension | XmlSchemaDerivationMethod.Substitution));
}
if (element.SchemaType != null)
{
this.SetParent(element.SchemaType, element);
if (!element.SchemaTypeName.IsEmpty)
{
base.SendValidationEvent("Sch_TypeMutualExclusive", element);
}
if (element.SchemaType is XmlSchemaComplexType)
{
this.PreprocessComplexType((XmlSchemaComplexType) element.SchemaType, true);
}
else
{
this.PreprocessSimpleType((XmlSchemaSimpleType) element.SchemaType, true);
}
}
if (!element.SchemaTypeName.IsEmpty)
{
this.ValidateQNameAttribute(element, "type", element.SchemaTypeName);
}
if ((element.DefaultValue != null) && (element.FixedValue != null))
{
base.SendValidationEvent("Sch_DefaultFixedAttributes", element);
}
for (int i = 0; i < element.Constraints.Count; i++)
{
XmlSchemaIdentityConstraint child = (XmlSchemaIdentityConstraint) element.Constraints[i];
this.SetParent(child, element);
this.PreprocessIdentityConstraint(child);
}
}