rem: {	return NULL; }
add: return NULL; } if ((soap->mode & SOAP_XML_STRICT) && (soap_flag_session)) {	soap->error = SOAP_OCCURS; return NULL;
context: SOAP_FMAC3 struct SOAP_ENV__Header * SOAP_FMAC4 soap_in_SOAP_ENV__Header(struct soap *soap, const char *tag, struct SOAP_ENV__Header *a, const char *type){	short soap_flag_ns1__session = 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__Header *)soap_class_id_enter(soap, soap->id, a, SOAP_TYPE_SOAP_ENV__Header, sizeof(struct SOAP_ENV__Header), soap->type, soap->arrayType);		if (!a)			return NULL;		if (soap->alloced)			soap_default_SOAP_ENV__Header(soap, a);		if (soap->body)		{	for (;;)			{	soap->error = SOAP_TAG_MISMATCH;			if (soap_flag_ns1__session && soap->error == SOAP_TAG_MISMATCH)				if (soap_in_std__string(soap, "ns1:session", &a->ns1__session, "xsd:string"))				{	soap_flag_ns1__session = 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;		}		if ((soap->mode & SOAP_XML_STRICT) && (soap_flag_ns1__session))		{	soap->error = SOAP_OCCURS;			return NULL;		}	}	else	{	a = (struct SOAP_ENV__Header *)soap_id_forward(soap, soap->href, (void**)soap_class_id_enter(soap, soap->id, a, SOAP_TYPE_SOAP_ENV__Header, sizeof(struct SOAP_ENV__Header), soap->type, soap->arrayType), SOAP_TYPE_SOAP_ENV__Header, sizeof(struct SOAP_ENV__Header));		if (a && soap->alloced)			soap_default_SOAP_ENV__Header(soap, a);		if (soap->body && soap_element_end_in(soap, tag))			return NULL;	}	return a;}