code: public SafeHtmlBuilder setDataAttribute(@CompileTimeConstant final String name, String value) {
      if (!name.matches(VALID_DATA_ATTRIBUTES_REGEXP)) {
        throw new IllegalArgumentException(
            "Invalid data attribute name \""
                + name
                + "\"."
                + "Name must start with \"data-\" and be followed by letters and '-'.");
      }
      return setAttribute(name, value);
    }
docs: Sets a custom data attribute, {@code name}, to {@code value} for this element. {@code value}
  must consist only of letters and {@code -}.
  
  @param name including the "data-" prefix, e.g. "data-tooltip"
  @throws IllegalArgumentException if the attribute name isn't valid
  @see
  http://www.w3.org/TR/html5/dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes