rem: { if (soap_element_begin_in(soap, tag))
add: { if (soap_element_begin_in(soap, tag, 0))
context: soap_inshort(struct soap *soap, const char *tag, short *p, const char *type, int t){ if (soap_element_begin_in(soap, tag))    return NULL;  if (soap->null)  { if (soap->mode & SOAP_XML_NIL)    { soap->error = SOAP_NULL;      return NULL;    }    return p;  }  if (*soap->type   && soap_match_tag(soap, soap->type, type)   && soap_match_tag(soap, soap->type, ":short")   && soap_match_tag(soap, soap->type, ":byte"))  { soap->error = SOAP_TYPE;    soap_revert(soap);    return NULL;  }  p = (short*)soap_id_enter(soap, soap->id, p, t, sizeof(short), 0);  if (soap->body && !*soap->href)    soap_s2short(soap, soap_value(soap), p);  else    p = (short*)soap_id_forward(soap, soap->href, p, t, sizeof(short));  if (soap->body && soap_element_end_in(soap, tag))    return NULL;  return p;}