private bool IsElementFromElement(XmlSchemaElement derivedElement, XmlSchemaElement baseElement) {
if(! ((derivedElement.QualifiedName == baseElement.QualifiedName) &&
(baseElement.IsNillable || !derivedElement.IsNillable) &&
IsValidOccurrenceRangeRestriction(derivedElement, baseElement) &&
(baseElement.FixedValue == null || IsFixedEqual(baseElement.ElementDecl, derivedElement.ElementDecl) ) &&
((derivedElement.ElementDecl.Block | baseElement.ElementDecl.Block) == derivedElement.ElementDecl.Block) &&
(derivedElement.ElementSchemaType != null) && (baseElement.ElementSchemaType != null) &&
XmlSchemaType.IsDerivedFrom(derivedElement.ElementSchemaType, baseElement.ElementSchemaType, ~(XmlSchemaDerivationMethod.Restriction | XmlSchemaDerivationMethod.List | XmlSchemaDerivationMethod.Union))) ) {
restrictionErrorMsg = Res.GetString(Res.Sch_ElementFromElement, derivedElement.QualifiedName, baseElement.QualifiedName);
return false;
}
return true;
}