docs: private void validateSettings(
          CmsEntity entity,
          CmsValidationResult validationResult,
          Map<String, CmsXmlContentProperty> settingsConfig) {
  
          Map<String, Map<String[], String>> errors = validationResult.getErrors();
          Map<String[], String> entityErrors = errors.get(entity.getId());
          if (entityErrors == null) {
              entityErrors = new HashMap<String[], String>();
          }
          Map<String, Map<String[], String>> warnings = validationResult.getWarnings();
          Map<String[], String> entityWarnings = warnings.get(entity.getId());
          if (entityWarnings == null) {
              entityWarnings = new HashMap<String[], String>();
          }
  
          for (CmsEntityAttribute attribute : entity.getAttributes()) {
              if (isSettingsAttribute(attribute.getAttributeName())) {
                  if (attribute.isSimpleValue()) {
                      String settingsKey = attribute.getAttributeName().substring(
                          SETTINGS_ATTRIBUTE_NAME_PREFIX.length() + 1);
                      CmsXmlContentProperty prop = settingsConfig.get(settingsKey);
                      if (prop != null) {
                          String regex = prop.getRuleRegex();
                          if (CmsStringUtil.isNotEmptyOrWhitespaceOnly(regex)) {
                              if (!attribute.getSimpleValue().matches(regex)) {
                                  String[] path = new String[] {attribute.getAttributeName()};
  
                                  if (SETTINGS_RULE_TYPE_ERROR.equals(prop.getRuleType())) {
                                      entityErrors.put(path, prop.getError());
                                  } else {
                                      entityWarnings.put(path, prop.getError());
                                  }
                              }
                          }
                      }
                  } else {
                      CmsEntity nested = attribute.getComplexValue();
                      for (CmsEntityAttribute nestedAttribute : nested.getAttributes()) {
                          String settingsKey = nestedAttribute.getAttributeName().substring(
                              SETTINGS_ATTRIBUTE_NAME_PREFIX.length() + 1);
                          CmsXmlContentProperty prop = settingsConfig.get(settingsKey);
                          if (prop != null) {
                              String regex = prop.getRuleRegex();
                              if (CmsStringUtil.isNotEmptyOrWhitespaceOnly(regex)) {
                                  if (!nestedAttribute.getSimpleValue().matches(regex)) {
                                      String[] path = new String[] {
                                          attribute.getAttributeName(),
                                          nestedAttribute.getAttributeName()};
                                      if (SETTINGS_RULE_TYPE_ERROR.equals(prop.getRuleType())) {
                                          entityErrors.put(path, prop.getError());
                                      } else {
                                          entityWarnings.put(path, prop.getError());
                                      }
                                  }
                              }
                          }
                      }
                  }
              }
          }
          if (!entityErrors.isEmpty()) {
              errors.put(entity.getId(), entityErrors);
          }
          if (!entityWarnings.isEmpty()) {
              warnings.put(entity.getId(), entityWarnings);
          }
  
      }