⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 soapc.c

📁 SOAP协议的C版本
💻 C
📖 第 1 页 / 共 5 页
字号:
			if (soap_flag_SOAP_ENV__Detail && soap->error == SOAP_TAG_MISMATCH)
				if (soap_in_string(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 (soap->alloced)
			soap_default_SOAP_ENV__Fault(soap, a);
		if (soap->body && soap_element_end_in(soap, tag))
			return NULL;
	}
	return a;
}

#endif

#ifndef WITH_NOGLOBAL

SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_SOAP_ENV__Code(struct soap *soap, struct SOAP_ENV__Code const*a)
{
	if (!soap_reference(soap, a, SOAP_TYPE_SOAP_ENV__Code))
		soap_mark_SOAP_ENV__Code(soap, a);
}

SOAP_FMAC3 void SOAP_FMAC4 soap_mark_SOAP_ENV__Code(struct soap *soap, const struct SOAP_ENV__Code *a)
{
	soap_embedded(soap, &a->SOAP_ENV__Value, SOAP_TYPE__QName);
	soap_mark__QName(soap, &a->SOAP_ENV__Value);
	soap_embedded(soap, &a->SOAP_ENV__Node, SOAP_TYPE_string);
	soap_mark_string(soap, &a->SOAP_ENV__Node);
	soap_embedded(soap, &a->SOAP_ENV__Role, SOAP_TYPE_string);
	soap_mark_string(soap, &a->SOAP_ENV__Role);
}

SOAP_FMAC3 void SOAP_FMAC4 soap_default_SOAP_ENV__Code(struct soap *soap, struct SOAP_ENV__Code *a)
{
	soap_default__QName(soap, &a->SOAP_ENV__Value);
	soap_default_string(soap, &a->SOAP_ENV__Node);
	soap_default_string(soap, &a->SOAP_ENV__Role);
}

SOAP_FMAC3 int SOAP_FMAC4 soap_put_SOAP_ENV__Code(struct soap *soap, struct SOAP_ENV__Code *a, const char *tag, const char *type)
{
	int i = soap_embed_element(soap, (void*)a, tag, SOAP_TYPE_SOAP_ENV__Code);
	soap_out_SOAP_ENV__Code(soap, tag, i, a, type);
	return soap_putindependent(soap);
}

SOAP_FMAC3 int SOAP_FMAC4 soap_out_SOAP_ENV__Code(struct soap *soap, const char *tag, int id, const struct SOAP_ENV__Code *a, const char *type)
{
	soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_SOAP_ENV__Code), type);
	soap_out__QName(soap, "SOAP-ENV:Value", -1, &a->SOAP_ENV__Value, "");
	soap_out_string(soap, "SOAP-ENV:Node", -1, &a->SOAP_ENV__Node, "");
	soap_out_string(soap, "SOAP-ENV:Role", -1, &a->SOAP_ENV__Role, "");
	soap_element_end_out(soap, tag);
	return SOAP_OK;
}

SOAP_FMAC3 struct SOAP_ENV__Code * SOAP_FMAC4 soap_get_SOAP_ENV__Code(struct soap *soap, struct SOAP_ENV__Code *p, const char *tag, const char *type)
{
	if ((p = soap_in_SOAP_ENV__Code(soap, tag, p, type)))
		soap_getindependent(soap);
	return p;
}

SOAP_FMAC3 struct SOAP_ENV__Code * SOAP_FMAC4 soap_in_SOAP_ENV__Code(struct soap *soap, const char *tag, struct SOAP_ENV__Code *a, const char *type)
{
	short soap_flag_SOAP_ENV__Value = 1, soap_flag_SOAP_ENV__Node = 1, soap_flag_SOAP_ENV__Role = 1;
	if (soap_element_begin_in(soap, tag))
		return NULL;
	if (*soap->type && soap_match_tag(soap, soap->type, type))
	{	soap->error = SOAP_TYPE_MISMATCH;
		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__Code *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_SOAP_ENV__Code, sizeof(struct SOAP_ENV__Code), 0);
		if (!a)
			return NULL;
		if (soap->alloced)
			soap_default_SOAP_ENV__Code(soap, a);
		if (soap->body)
		{	for (;;)
			{	soap->error = SOAP_TAG_MISMATCH;
			if (soap_flag_SOAP_ENV__Value && soap->error == SOAP_TAG_MISMATCH)
				if (soap_in__QName(soap, "SOAP-ENV:Value", &a->SOAP_ENV__Value, ""))
				{	soap_flag_SOAP_ENV__Value = 0;
					continue;
				}
			if (soap_flag_SOAP_ENV__Node && soap->error == SOAP_TAG_MISMATCH)
				if (soap_in_string(soap, "SOAP-ENV:Node", &a->SOAP_ENV__Node, ""))
				{	soap_flag_SOAP_ENV__Node = 0;
					continue;
				}
			if (soap_flag_SOAP_ENV__Role && soap->error == SOAP_TAG_MISMATCH)
				if (soap_in_string(soap, "SOAP-ENV:Role", &a->SOAP_ENV__Role, ""))
				{	soap_flag_SOAP_ENV__Role = 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__Code *)soap_id_forward(soap, soap->href, (void**)soap_id_enter(soap, soap->id, a, SOAP_TYPE_SOAP_ENV__Code, sizeof(struct SOAP_ENV__Code), 0), SOAP_TYPE_SOAP_ENV__Code, sizeof(struct SOAP_ENV__Code));
		if (soap->alloced)
			soap_default_SOAP_ENV__Code(soap, a);
		if (soap->body && soap_element_end_in(soap, tag))
			return NULL;
	}
	return a;
}

#endif

SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_dsmp__SyncOrderRelationReq(struct soap *soap, struct dsmp__SyncOrderRelationReq const*a)
{
	if (!soap_reference(soap, a, SOAP_TYPE_dsmp__SyncOrderRelationReq))
		soap_mark_dsmp__SyncOrderRelationReq(soap, a);
}

SOAP_FMAC3 void SOAP_FMAC4 soap_mark_dsmp__SyncOrderRelationReq(struct soap *soap, const struct dsmp__SyncOrderRelationReq *a)
{
	soap_embedded(soap, &a->MsgType, SOAP_TYPE_xsd__string);
	soap_mark_xsd__string(soap, &a->MsgType);
	soap_embedded(soap, &a->Version, SOAP_TYPE_xsd__string);
	soap_mark_xsd__string(soap, &a->Version);
	soap_embedded(soap, &a->Send_Address, SOAP_TYPE_PointerTodsmp__address_info);
	soap_mark_PointerTodsmp__address_info(soap, &a->Send_Address);
	soap_embedded(soap, &a->Dest_Address, SOAP_TYPE_PointerTodsmp__address_info);
	soap_mark_PointerTodsmp__address_info(soap, &a->Dest_Address);
	soap_embedded(soap, &a->FeeUser_ID, SOAP_TYPE_PointerTodsmp__user_id);
	soap_mark_PointerTodsmp__user_id(soap, &a->FeeUser_ID);
	soap_embedded(soap, &a->DestUser_ID, SOAP_TYPE_PointerTodsmp__user_id);
	soap_mark_PointerTodsmp__user_id(soap, &a->DestUser_ID);
	soap_embedded(soap, &a->LinkID, SOAP_TYPE_xsd__string);
	soap_mark_xsd__string(soap, &a->LinkID);
	soap_embedded(soap, &a->ActionID, SOAP_TYPE_xsd__integer);
	soap_mark_xsd__integer(soap, &a->ActionID);
	soap_embedded(soap, &a->ActionReasonID, SOAP_TYPE_xsd__integer);
	soap_mark_xsd__integer(soap, &a->ActionReasonID);
	soap_embedded(soap, &a->SPID, SOAP_TYPE_xsd__string);
	soap_mark_xsd__string(soap, &a->SPID);
	soap_embedded(soap, &a->SPServiceID, SOAP_TYPE_xsd__string);
	soap_mark_xsd__string(soap, &a->SPServiceID);
	soap_embedded(soap, &a->AccessMode, SOAP_TYPE_xsd__integer);
	soap_mark_xsd__integer(soap, &a->AccessMode);
	soap_embedded(soap, &a->FeatureStr, SOAP_TYPE_PointerToxsd__base64Binary);
	soap_mark_PointerToxsd__base64Binary(soap, &a->FeatureStr);
}

SOAP_FMAC3 void SOAP_FMAC4 soap_default_dsmp__SyncOrderRelationReq(struct soap *soap, struct dsmp__SyncOrderRelationReq *a)
{
	soap_default_xsd__string(soap, &a->MsgType);
	soap_default_xsd__string(soap, &a->Version);
	soap_default_PointerTodsmp__address_info(soap, &a->Send_Address);
	soap_default_PointerTodsmp__address_info(soap, &a->Dest_Address);
	soap_default_PointerTodsmp__user_id(soap, &a->FeeUser_ID);
	soap_default_PointerTodsmp__user_id(soap, &a->DestUser_ID);
	soap_default_xsd__string(soap, &a->LinkID);
	soap_default_xsd__integer(soap, &a->ActionID);
	soap_default_xsd__integer(soap, &a->ActionReasonID);
	soap_default_xsd__string(soap, &a->SPID);
	soap_default_xsd__string(soap, &a->SPServiceID);
	soap_default_xsd__integer(soap, &a->AccessMode);
	soap_default_PointerToxsd__base64Binary(soap, &a->FeatureStr);
}

SOAP_FMAC3 int SOAP_FMAC4 soap_put_dsmp__SyncOrderRelationReq(struct soap *soap, struct dsmp__SyncOrderRelationReq *a, const char *tag, const char *type)
{
	int i = soap_embed_element(soap, (void*)a, tag, SOAP_TYPE_dsmp__SyncOrderRelationReq);
	soap_out_dsmp__SyncOrderRelationReq(soap, tag, i, a, type);
	return soap_putindependent(soap);
}

SOAP_FMAC3 int SOAP_FMAC4 soap_out_dsmp__SyncOrderRelationReq(struct soap *soap, const char *tag, int id, const struct dsmp__SyncOrderRelationReq *a, const char *type)
{
	soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_dsmp__SyncOrderRelationReq), type);
	soap_out_xsd__string(soap, "MsgType", -1, &a->MsgType, "");
	soap_out_xsd__string(soap, "Version", -1, &a->Version, "");
	soap_out_PointerTodsmp__address_info(soap, "Send_Address", -1, &a->Send_Address, "");
	soap_out_PointerTodsmp__address_info(soap, "Dest_Address", -1, &a->Dest_Address, "");
	soap_out_PointerTodsmp__user_id(soap, "FeeUser_ID", -1, &a->FeeUser_ID, "");
	soap_out_PointerTodsmp__user_id(soap, "DestUser_ID", -1, &a->DestUser_ID, "");
	soap_out_xsd__string(soap, "LinkID", -1, &a->LinkID, "");
	soap_out_xsd__integer(soap, "ActionID", -1, &a->ActionID, "");
	soap_out_xsd__integer(soap, "ActionReasonID", -1, &a->ActionReasonID, "");
	soap_out_xsd__string(soap, "SPID", -1, &a->SPID, "");
	soap_out_xsd__string(soap, "SPServiceID", -1, &a->SPServiceID, "");
	soap_out_xsd__integer(soap, "AccessMode", -1, &a->AccessMode, "");
	soap_out_PointerToxsd__base64Binary(soap, "FeatureStr", -1, &a->FeatureStr, "");
	soap_element_end_out(soap, tag);
	return SOAP_OK;
}

SOAP_FMAC3 struct dsmp__SyncOrderRelationReq * SOAP_FMAC4 soap_get_dsmp__SyncOrderRelationReq(struct soap *soap, struct dsmp__SyncOrderRelationReq *p, const char *tag, const char *type)
{
	if ((p = soap_in_dsmp__SyncOrderRelationReq(soap, tag, p, type)))
		soap_getindependent(soap);
	return p;
}

SOAP_FMAC3 struct dsmp__SyncOrderRelationReq * SOAP_FMAC4 soap_in_dsmp__SyncOrderRelationReq(struct soap *soap, const char *tag, struct dsmp__SyncOrderRelationReq *a, const char *type)
{
	short soap_flag_MsgType = 1, soap_flag_Version = 1,
		  soap_flag_Send_Address = 1, soap_flag_Dest_Address = 1,
		  soap_flag_FeeUser_ID = 1, soap_flag_DestUser_ID = 1,
		  soap_flag_LinkID = 1, soap_flag_ActionID = 1, 
		  soap_flag_ActionReasonID = 1, soap_flag_SPID = 1, 
		  soap_flag_SPServiceID = 1, soap_flag_AccessMode = 1, 
		  soap_flag_FeatureStr = 1;
	
	if (soap_element_begin_in(soap, tag))
		return NULL;

	if (*soap->type && soap_match_tag(soap, soap->type, type)) {
		soap->error = SOAP_TYPE_MISMATCH;
		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 dsmp__SyncOrderRelationReq *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_dsmp__SyncOrderRelationReq, sizeof(struct dsmp__SyncOrderRelationReq), 0);
		if (!a) return NULL;
		if (soap->alloced)
			soap_default_dsmp__SyncOrderRelationReq(soap, a);
		
		if (soap->body) {
			for (;;) {
				soap->error = SOAP_TAG_MISMATCH;
				if (soap_flag_MsgType && soap->error == SOAP_TAG_MISMATCH)
					if (soap_in_xsd__string(soap, "MsgType", &a->MsgType, "xsd:string")) {
						soap_flag_MsgType = 0;
						continue;
					}
				if (soap_flag_Version && soap->error == SOAP_TAG_MISMATCH)
					if (soap_in_xsd__string(soap, "Version", &a->Version, "xsd:string")) {
						soap_flag_Version = 0;
						continue;
					}

				if (soap_flag_Send_Address && soap->error == SOAP_TAG_MISMATCH)
					if (soap_in_PointerTodsmp__address_info(soap, "Send_Address", &a->Send_Address, "dsmp:address_info_schema")) {
						soap_flag_Send_Address = 0;
						continue;
					}

				if (soap_flag_Dest_Address && soap->error == SOAP_TAG_MISMATCH)
					if (soap_in_PointerTodsmp__address_info(soap, "Dest_Address", &a->Dest_Address, "dsmp:address_info_schema")) {
						soap_flag_Dest_Address = 0;
						continue;
					}
				if (soap_flag_FeeUser_ID && soap->error == SOAP_TAG_MISMATCH)
					if (soap_in_PointerTodsmp__user_id(soap, "FeeUser_ID", &a->FeeUser_ID, "dsmp:user_id_schema")) {
						soap_flag_FeeUser_ID = 0;
						continue;
					}
						
			if (soap_flag_DestUser_ID && soap->error == SOAP_TAG_MISMATCH)
				if (soap_in_PointerTodsmp__user_id(soap, "DestUser_ID", &a->DestUser_ID, "dsmp:user_id_schema"))
				{	soap_flag_DestUser_ID = 0;
					continue;
				}
			if (soap_flag_LinkID && soap->error == SOAP_TAG_MISMATCH)
				if (soap_in_xsd__string(soap, "LinkID", &a->LinkID, "xsd:string"))
				{	soap_flag_LinkID = 0;
					continue;
				}
			if (soap_flag_ActionID && soap->error == SOAP_TAG_MISMATCH)
				if (soap_in_xsd__integer(soap, "ActionID", &a->ActionID, "xsd:integer"))
				{	soap_flag_ActionID = 0;
					continue;
				}
			if (soap_flag_ActionReasonID && soap->error == SOAP_TAG_MISMATCH)
				if (soap_in_xsd__integer(soap, "ActionReasonID", &a->ActionReasonID, "xsd:integer"))
				{	soap_flag_ActionReasonID = 0;
					continue;
				}
			if (soap_flag_SPID && soap->error == SOAP_TAG_MISMATCH)
				if (soap_in_xsd__string(soap, "SPID", &a->SPID, "xsd:string"))
				{	soap_flag_SPID = 0;
					continue;
				}
			if (soap_flag_SPServiceID && soap->error == SOAP_TAG_MISMATCH)
				if (soap_in_xsd__string(soap, "SPServiceID", &a->SPServiceID, "xsd:string"))
				{	soap_flag_SPServiceID = 0;
					continue;
				}
			if (soap_flag_AccessMode && soap->error == SOAP_TAG_MISMATCH)
				if (soap_in_xsd__integer(soap, "AccessMode", &a->AccessMode, "xsd:integer"))
				{	soap_flag_AccessMode = 0;
					continue;
				}
			if (soap_flag_FeatureStr && soap->error == SOAP_TAG_MISMATCH)
				if (soap_in_PointerToxsd__base64Binary(soap, "FeatureStr", &a->FeatureStr, "xsd:base64Binary"))
				{	soap_flag_FeatureStr = 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 dsmp__SyncOrderRelationReq *)soap_id_forward(soap, soap->href, (void**)soap_id_enter(soap, soap->id, a, SOAP_TYPE_dsmp__SyncOrderRelationReq, sizeof(struct dsmp__SyncOrderRelationReq), 0), SOAP_TYPE_dsmp__SyncOrderRelationReq, sizeof(struct dsmp__SyncOrderRelationReq));

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -