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); } }
private void PreprocessElementContent(XmlSchemaElement element) { PreprocessAnnotation(element); //Set parent for Annotation child of element if (!element.RefName.IsEmpty) { SendValidationEvent(Res.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 & elementBlockAllowed); } } else { if ((element.Block & ~elementBlockAllowed) != 0) { SendValidationEvent(Res.Sch_InvalidElementBlockValue, element); } element.SetBlockResolved(element.Block & elementBlockAllowed); } if (element.SchemaType != null) { SetParent(element.SchemaType, element); //Set parent for simple / complex type child of element if (!element.SchemaTypeName.IsEmpty) { SendValidationEvent(Res.Sch_TypeMutualExclusive, element); } if (element.SchemaType is XmlSchemaComplexType) { PreprocessComplexType((XmlSchemaComplexType)element.SchemaType, true); } else { PreprocessSimpleType((XmlSchemaSimpleType)element.SchemaType, true); } } if (!element.SchemaTypeName.IsEmpty) { ValidateQNameAttribute(element, "type", element.SchemaTypeName); } if (element.DefaultValue != null && element.FixedValue != null) { SendValidationEvent(Res.Sch_DefaultFixedAttributes, element); } for (int i = 0; i < element.Constraints.Count; ++i) { XmlSchemaIdentityConstraint identityConstraint = (XmlSchemaIdentityConstraint)element.Constraints[i]; SetParent(identityConstraint, element); PreprocessIdentityConstraint(identityConstraint); } }