code: private void validateAttributeValues(final String qName, final Attributes atts) {
          if (validateMap.isEmpty()) {
              return;
          }
          for (int i = 0; i < atts.getLength(); i++) {
              final QName attrName = new QName(atts.getURI(i), atts.getLocalName(i));
              final Map<String, Set<String>> valueMap = validateMap.get(attrName);
              if (valueMap != null) {
                  Set<String> valueSet = valueMap.get(qName);
                  if (valueSet == null) {
                      valueSet = valueMap.get("*");
                  }
                  if (valueSet != null) {
                      final String attrValue = atts.getValue(i);
                      final String[] keylist = attrValue.trim().split("\\s+");
                      for (final String s : keylist) {
                          if (!StringUtils.isEmptyString(s) && !valueSet.contains(s)) {
                              logger.warn(MessageUtils.getMessage("DOTJ049W",
                                      attrName.toString(), qName, attrValue, StringUtils.join(valueSet, COMMA)).toString());
                          }
                      }
                  }
              }
          }
      }
docs: Validate attribute values
  
  @param qName element name
  @param atts attributes