protected override IEnumerable <BdtSupSpec> SpecifySUPs() { string baseTypeName = Restriction.BaseTypeName.Name; var supAttributes = new SUPXsdAttributes(Restriction.Attributes); IBdt parentBDT = GetBDTByXsdTypeName(baseTypeName); foreach (IBdtSup parentSUP in parentBDT.Sups) { var supSpec = BdtSupSpec.CloneBdtSup(parentSUP); if (!supAttributes.IsProhibited(supSpec)) { supAttributes.ApplyRestrictions(supSpec); yield return(supSpec); } } }