@Nullable
  XmlAttribute setAttribute(String qname, @Nullable String value) throws IncorrectOperationException {
    final XmlAttribute attribute = myTag.getAttribute(qname);

    if (attribute != null) {
      if (value == null) {
        deleteChildInternal(attribute.getNode());
        return null;
      }
      attribute.setValue(value);
      return attribute;
    }
    else if (value == null) {
      return null;
    }
    else {
      PsiElement xmlAttribute = myTag.add(createAttribute(qname, value));
      while (!(xmlAttribute instanceof XmlAttribute)) xmlAttribute = xmlAttribute.getNextSibling();
      return (XmlAttribute)xmlAttribute;
    }
  }
@Nullable
  XmlAttribute setAttribute(String qname, @Nullable String value)