If C code generation is selected, the following items are generated for each WSDL Operation input/ output/fault types:
C type definition
Encode function prototype
Decode function prototype
Initialization function prototype
Other function prototypes depending on selected options (for example, print)
/** * WSDL operation definitions */ typedef struct EXTERN Add_Input { Operands_ELEM Operands; } Add_Input; typedef struct EXTERN Add_Output { OSREAL Result; } Add_Output; typedef struct EXTERN Add_Fault { struct { unsigned faultactorPresent : 1; unsigned detailPresent : 1; } m; OSXMLSTRING faultcode; OSXMLSTRING faultstring; OSXMLSTRING faultactor; OSXSDAnyType detail; } Add_Fault; EXTERN int XmlE_Add_Input (OSCTXT* pctxt, Add_Input* pvalue); EXTERN int XmlD_Add_Input (OSCTXT* pctxt, Add_Input* pvalue); ... EXTERN int XmlE_Add_Output (OSCTXT* pctxt, Add_Output* pvalue); EXTERN int XmlD_Add_Output (OSCTXT* pctxt , Add_Output* pvalue, Add_Fault* pfault); ... EXTERN int XmlE_Add_Fault (OSCTXT* pctxt, Add_Fault* pvalue);
This corresponds to the following WSDL portType and binding definitions:
<wsdl:portType name="CalcServiceSoap"> <wsdl:operation name="Add"> <wsdl:input message="tns:AddRequest" /> <wsdl:output message="tns:AddResponse" /> </wsdl:operation> </wsdl:portType>
<wsdl:binding name="CalcServiceSoap" type="tns:CalcServiceSoap"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" /> <wsdl:operation name="Add"> <soap:operation soapAction="http://Calc.com/Calc/Add" /> <wsdl:input> <soap:body use="literal" /> </wsdl:input> <wsdl:output> <soap:body use="literal" /> </wsdl:output> </wsdl:operation> </wsdl:binding>