rem: if (soap->null) {	if (soap->mode & SOAP_XML_NIL) {	soap->error = SOAP_NULL; return NULL; } else return a; } if (!*soap->href) {	a = (struct SOAP_ENV__Fault *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_SOAP_ENV__Fault, sizeof(struct SOAP_ENV__Fault), 0); if (!a) return NULL; if (soap->alloced) soap_default_SOAP_ENV__Fault(soap, a); if (soap->body) {	for (;;) {	soap->error = SOAP_TAG_MISMATCH;
add: a = (struct SOAP_ENV__Fault *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_SOAP_ENV__Fault, sizeof(struct SOAP_ENV__Fault), 0, NULL, NULL, NULL); if (!a) return NULL; if (soap->alloced) soap_default_SOAP_ENV__Fault(soap, a); if (soap->body && !*soap->href) {	for (;;) {	soap->error = SOAP_TAG_MISMATCH;
context: SOAP_FMAC3 struct SOAP_ENV__Fault * SOAP_FMAC4 soap_in_SOAP_ENV__Fault(struct soap *soap, const char *tag, struct SOAP_ENV__Fault *a, const char *type){	short soap_flag_faultcode = 1, soap_flag_faultstring = 1, soap_flag_faultactor = 1, soap_flag_detail = 1, soap_flag_SOAP_ENV__Code = 1, soap_flag_SOAP_ENV__Reason = 1, soap_flag_SOAP_ENV__Detail = 1;	if (soap_element_begin_in(soap, tag))		return NULL;	if (*soap->type && soap_match_tag(soap, soap->type, type))	{	soap->error = SOAP_TYPE;		soap_revert(soap);		return NULL;	}	if (soap->null)	{	if (soap->mode & SOAP_XML_NIL)		{	soap->error = SOAP_NULL;			return NULL;		}		else			return a;	}	if (!*soap->href)	{	a = (struct SOAP_ENV__Fault *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_SOAP_ENV__Fault, sizeof(struct SOAP_ENV__Fault), 0);		if (!a)			return NULL;		if (soap->alloced)			soap_default_SOAP_ENV__Fault(soap, a);		if (soap->body)		{	for (;;)			{	soap->error = SOAP_TAG_MISMATCH;			if (soap_flag_faultcode && soap->error == SOAP_TAG_MISMATCH)				if (soap_in__QName(soap, "faultcode", &a->faultcode, ""))				{	soap_flag_faultcode = 0;					continue;				}			if (soap_flag_faultstring && soap->error == SOAP_TAG_MISMATCH)				if (soap_in_string(soap, "faultstring", &a->faultstring, ""))				{	soap_flag_faultstring = 0;					continue;				}			if (soap_flag_faultactor && soap->error == SOAP_TAG_MISMATCH)				if (soap_in_string(soap, "faultactor", &a->faultactor, ""))				{	soap_flag_faultactor = 0;					continue;				}			if (soap_flag_detail && soap->error == SOAP_TAG_MISMATCH)				if (soap_in_PointerToSOAP_ENV__Detail(soap, "detail", &a->detail, ""))				{	soap_flag_detail = 0;					continue;				}			if (soap_flag_SOAP_ENV__Code && soap->error == SOAP_TAG_MISMATCH)				if (soap_in_PointerToSOAP_ENV__Code(soap, "SOAP-ENV:Code", &a->SOAP_ENV__Code, ""))				{	soap_flag_SOAP_ENV__Code = 0;					continue;				}			if (soap_flag_SOAP_ENV__Reason && soap->error == SOAP_TAG_MISMATCH)				if (soap_in_string(soap, "SOAP-ENV:Reason", &a->SOAP_ENV__Reason, ""))				{	soap_flag_SOAP_ENV__Reason = 0;					continue;				}			if (soap_flag_SOAP_ENV__Detail && soap->error == SOAP_TAG_MISMATCH)				if (soap_in_PointerToSOAP_ENV__Detail(soap, "SOAP-ENV:Detail", &a->SOAP_ENV__Detail, ""))				{	soap_flag_SOAP_ENV__Detail = 0;					continue;				}			if (soap->error == SOAP_TAG_MISMATCH)				soap->error = soap_ignore_element(soap);			if (soap->error == SOAP_NO_TAG)				break;			if (soap->error)			{	return NULL;			}		}		if (soap_element_end_in(soap, tag))			return NULL;		}	}	else	{	a = (struct SOAP_ENV__Fault *)soap_id_forward(soap, soap->href, (void**)soap_id_enter(soap, soap->id, a, SOAP_TYPE_SOAP_ENV__Fault, sizeof(struct SOAP_ENV__Fault), 0), SOAP_TYPE_SOAP_ENV__Fault, sizeof(struct SOAP_ENV__Fault));		if (a && soap->alloced)			soap_default_SOAP_ENV__Fault(soap, a);		if (soap->body && soap_element_end_in(soap, tag))			return NULL;	}	return a;}