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>