/// <summary>
        /// Populates the collection of settings by searching for <see cref="CustomizableDomainElementSettingAttribute"/> attributes 
        /// on the embedded relationships of the given element.
        /// </summary>
        private static void PopulateFromEmbeddedRelationshipDomainRoleProperties(CustomizableElementSchema element)
        {
            DomainClassInfo currentElementInfo = element.GetDomainClass();

            // Traverse all embedded domain relationships
            IEnumerable<DomainRoleInfo> sourceDomainRoleInfos = currentElementInfo.AllDomainRolesPlayed.Where(role => role.IsEmbedding);
            foreach (DomainRoleInfo sourceDomainRole in sourceDomainRoleInfos)
            {
                PropertyInfo sourceRolePropertyType = sourceDomainRole.RolePlayer.ImplementationClass.GetProperty(sourceDomainRole.PropertyName);
                PropertyInfo attributedRelationshipPropertyType = sourceDomainRole.DomainRelationship.ImplementationClass.GetProperty(sourceDomainRole.Name);
                if (attributedRelationshipPropertyType != null)
                {
                    // Create the setting, if the property of the relationsip on the opposite side is attributed
                    CreateSettingForAttribute(element, attributedRelationshipPropertyType, sourceRolePropertyType);
                }
            }
        }
        /// <summary>
        /// Populates the collection of settings by searching for <see cref="CustomizableDomainElementSettingAttribute"/> attributes 
        /// on the domain properties of the given element.
        /// </summary>
        private static void PopulateFromOwnedDomainProperties(CustomizableElementSchema element)
        {
            DomainClassInfo currentElementInfo = element.GetDomainClass();

            // Traverse all domain properties
            IEnumerable<DomainPropertyInfo> domainPropertyInfos = currentElementInfo.AllDomainProperties;
            foreach (DomainPropertyInfo domainPropertyInfo in domainPropertyInfos)
            {
                PropertyInfo domainPropertyType = domainPropertyInfo.PropertyInfo;

                // Create the setting, if domain property is attributed
                CreateSettingForAttribute(element, domainPropertyType, null);
            }
        }