@Override
  public List<RemotableAttributeError> validateDocumentAttributeCriteria(
      ExtensionDefinition extensionDefinition, DocumentSearchCriteria documentSearchCriteria) {
    List<RemotableAttributeError> validationErrors = new ArrayList<RemotableAttributeError>();
    DictionaryValidationService validationService =
        KNSServiceLocator.getKNSDictionaryValidationService();

    // validate the document attribute values
    Map<String, List<String>> documentAttributeValues =
        documentSearchCriteria.getDocumentAttributeValues();
    for (String key : documentAttributeValues.keySet()) {
      List<String> values = documentAttributeValues.get(key);
      if (CollectionUtils.isNotEmpty(values)) {
        for (String value : values) {
          if (StringUtils.isNotBlank(value)) {
            validationService.validateAttributeFormat(
                documentSearchCriteria.getDocumentTypeName(), key, value, key);
          }
        }
      }
    }

    retrieveValidationErrorsFromGlobalVariables(validationErrors);

    return validationErrors;
  }