rem: *s = "XML syntax error";
add: *s = "Well-formedness constraint violation";
context: soap_set_fault(struct soap *soap){ const char **c = soap_faultcode(soap);  const char **s = soap_faultstring(soap);  if (!*c)  { if (soap->version == 2)      *c = "SOAP-ENV:Sender";    else      *c = "SOAP-ENV:Client";  }  if (*s)    return;  switch (soap->error)  { case SOAP_CLI_FAULT:      *s = "Client fault";      break;    case SOAP_SVR_FAULT:      *s = "Server fault";      break;    case SOAP_TAG_MISMATCH:      sprintf(soap->msgbuf, "Tag mismatch: element '%s' does not correspond to expected element", soap->tag);      *s = soap->msgbuf;      break;    case SOAP_TYPE:      sprintf(soap->msgbuf, "Data type '%s' mismatch in element '%s'", soap->type, soap->tag);      *s = soap->msgbuf;      break;    case SOAP_SYNTAX_ERROR:      *s = "XML syntax error";      break;    case SOAP_NO_TAG:      *s = "No XML element tag found";      break;    case SOAP_MUSTUNDERSTAND:      *c = "SOAP-ENV:MustUnderstand";      sprintf(soap->msgbuf, "The data in element '%s' must be understood but cannot be handled", soap->tag);      *s = soap->msgbuf;      break;    case SOAP_VERSIONMISMATCH:      *c = "SOAP-ENV:VersionMismatch";      *s = "SOAP version mismatch or invalid SOAP message";      break;    case SOAP_DATAENCODINGUNKNOWN:      *c = "SOAP-ENV:DataEncodingUnknown";      *s = "Unsupported SOAP data encoding";      break;    case SOAP_DIME_MISMATCH:      *s = "DIME version mismatch";      break;    case SOAP_NAMESPACE:      sprintf(soap->msgbuf, "Namespace URI mismatch in element '%s'", soap->tag);      *s = soap->msgbuf;      break;    case SOAP_OBJ_MISMATCH:      *s = "Object mismatch";      break;    case SOAP_FATAL_ERROR:      *s = "Fatal error";      break;    case SOAP_NO_METHOD:      sprintf(soap->msgbuf, "Method '%s' not implemented", soap->tag);      *s = soap->msgbuf;      break;    case SOAP_GET_METHOD:      *s = "HTTP GET method not implemented";      break;    case SOAP_EOM:      *s = "Out of memory";      break;    case SOAP_IOB:      *s = "Array index out of bounds";      break;    case SOAP_NULL:      sprintf(soap->msgbuf, "Cannot create nilable object for type '%s' in element '%s'", soap->type, soap->tag);      *s = soap->msgbuf;      break;    case SOAP_MULTI_ID:      *s = "Non-unique id attribute";      break;    case SOAP_MISSING_ID:      *s = "Missing id: referenced data is missing or had to be ignored";      break;    case SOAP_HREF:      *s = "Invalid XML: object reference with href attribute is incompatible with actual object referred to";      break;    case SOAP_FAULT:      break;    case SOAP_TCP_ERROR:      *s = tcp_error(soap);      break;    case SOAP_HTTP_ERROR:      *s = "HTTP error";      break;    case SOAP_SSL_ERROR:      *s = "SSL error";      break;    case SOAP_PLUGIN_ERROR:      *s = "Plugin registry error";      break;    case SOAP_DIME_ERROR:      *s = "DIME error";      break;    case SOAP_ZLIB_ERROR:#ifdef WITH_ZLIB      sprintf(soap->msgbuf, "Zlib/gzip error: '%s'", soap->d_stream.msg?soap->d_stream.msg:"");      *s = soap->msgbuf;#else      *s = "Zlib not installed for required message (de)compression";#endif      break;    case SOAP_EOD:      *s = "End of DIME error";      break;    case SOAP_REQUIRED:      *s = "Validation failure: XML attribute required";      break;    case SOAP_OCCURS:      *s = "Validation failure: XML element occurs count";      break;    case SOAP_EOF:      sprintf(soap->msgbuf, "End of file or no input: '%s'", soap_strerror(soap));      *s = soap->msgbuf;      break;    default:      if (soap->error > 200 && soap->error < 600)      { sprintf(soap->msgbuf, "HTTP Error: '%s'", http_error(soap, soap->error));        *s = soap->msgbuf;      }      else        *s = "Unknown error code";    }}