code: @VisibleForTesting
      boolean extCheckExclude(final QName[] propList, final List<String> attValue) {
          for (int propListIndex = propList.length - 1; propListIndex >= 0; propListIndex--) {
              final QName attName = propList[propListIndex];
              checkRuleMapping(attName, attValue);
              boolean hasNonExcludeAction = false;
              boolean hasExcludeAction = false;
              for (final String attSubValue: attValue) {
                  final FilterKey filterKey = new FilterKey(attName, attSubValue);
                  final Action filterAction = filterMap.get(filterKey);
                  // no action will be considered as 'not exclude'
                  if (filterAction == null) {
                      // check Specified DefaultAction mapping this attribute's name
                      final Action defaultAction = filterMap.get(new FilterKey(attName, null));
                      if (defaultAction != null) {
                          if (defaultAction instanceof Exclude) {
                              hasExcludeAction = true;
                          } else {
                              return false;
                          }
                      } else {
                          if (hasExcludeAction) {
                              if (!isDefaultExclude()) {
                                  return false;
                              }
                          } else {
                              hasNonExcludeAction = true;
                          }
                      }
                  } else if (filterAction instanceof Exclude) {
                      hasExcludeAction = true;
                      if (hasNonExcludeAction) {
                          if (isDefaultExclude()) {
                              hasNonExcludeAction = false;
                          } else {
                              return false;
                          }
                      }
                  } else {
                      return false;
                  }
              }
  
              // if there is exclude action but not all value should be excluded
              if (hasNonExcludeAction) {
                  // under the condition of default action also not exist or not excluded
                  if (0 == propListIndex) {
                      // the ancient parent on the top level
                      return isDefaultExclude();
                  }
              // if all of the value should be excluded
              } else if (hasExcludeAction) {
                  return true;
              }
              // If no action for this extended prop has been found, we need to check the parent prop action
          }
  
          return false;
      }
docs: Check the given extended attribute in propList to see if it was excluded.
  
  @param propList attribute group names, from most common to most specific
  @param attValue attribute group values
  @return {@code true} if should be excluded, otherwise {@code false}