code: @SuppressWarnings("unchecked")
      public <T extends AbstractJaxb> void replaceDescendants(String clazz,
              Class<T> tagType, T replacement) throws TagTypeUnmatchException {
          ReplaceDescendantsUtil.replaceDescendants((T) this, tagType, clazz,
                  replacement);
      }
docs: <p>
  replace all the descendant elements that is specified tag type having
  specified class attribute. this method use deep copy of "replacement"
  </p>
  
  @param clazz
  class attribute
  @param tagType
  @param replacement
  @throws TagTypeUnmatchException