rem: { if (soap_send_raw(soap, " ", 1) || soap_send(soap, tp->name))
add: { if (soap_send2(soap, " ", tp->name))
context: soap_element_start_end_out(struct soap *soap, const char *tag){ register struct soap_attribute *tp;/**/#ifdef WITH_DOM  if ((soap->mode & SOAP_XML_DOM) && soap->dom)  { for (tp = soap->attributes; tp; tp = tp->next)    { if (tp->visible)      { register struct soap_dom_attribute *a = (struct soap_dom_attribute*)soap_malloc(soap, sizeof(struct soap_dom_attribute));	a->next = soap->dom->atts;        a->nstr = NULL;        a->name = soap_strdup(soap, tp->name); /* check EOM */        a->data = soap_strdup(soap, tp->value); /* check EOM */        a->wide = NULL;	soap->dom->atts = a;        tp->visible = 0;      }    }    return SOAP_OK;  }#endif/**/  for (tp = soap->attributes; tp; tp = tp->next)  { if (tp->visible)    { if (soap_send_raw(soap, " ", 1)       || soap_send(soap, tp->name))        return soap->error;      if (tp->visible == 2 && tp->value)        if (soap_send_raw(soap, "=\"", 2)	 || soap_string_out(soap, tp->value, 1)	 || soap_send_raw(soap, "\"", 1))          return soap->error;      tp->visible = 0;    }  }  if (tag)  { soap->level--;#ifndef WITH_LEAN    if (soap->mode & SOAP_XML_CANONICAL)    { if (soap_send_raw(soap, ">", 1)       || soap_element_end_out(soap, tag))        return soap->error;      return SOAP_OK;    }#endif    return soap_send_raw(soap, "/>", 2);  }  return soap_send_raw(soap, ">", 1);}