code: @Override
      public boolean isValid(TagData data) {
  
          boolean hasFile = isSpecified(data, ATTR_FILE) || isSpecified(data, ATTR_PAGE);
          boolean hasSuffix = isSpecified(data, ATTR_SUFFIX);
          boolean hasProperty = isSpecified(data, ATTR_PROPERTY);
          boolean hasAttribute = isSpecified(data, ATTR_ATTRIBUTE);
          // boolean hasElement = isSpecified(data, C_ATTR_ELEMENT);
  
          if (hasFile && (hasSuffix || hasProperty || hasAttribute)) {
              return false;
          }
          if (hasProperty && hasAttribute) {
              return false;
          }
          if (hasSuffix && !(hasProperty || hasAttribute)) {
              return false;
          }
  
          return true;
      }
docs: Checks the validity of the <code>&lt;cms:include /&gt;</code> attributes.<p>
  
  The logic used is:
  <pre>
  if (hasFile && (hasSuffix || hasProperty || hasAttribute)) return false;
  if (hasProperty && hasAttribute) return false;
  if (hasSuffix && !(hasProperty || hasAttribute)) return false;
  </pre>
  
  @param data the tag data
  @return true if attributes are valid, false otherwise