Srinath and folks
So here is an idea for WSDL generation (http://blah/service?wsdl).
We can reflect on the component and easily find the operations. So we
could create a WSDL which gives details of the operations, but the
schemas are all simply complextypes that devolve to xsd:any.
Of course if the user has a real WSDL they could provide it. But this
way, even if there is no WSDL we can give the user enough information -
via WSDL - to know the URL, the binding type (doc/lit etc) and the
operations.
Here is an example WSDL (rough only)...
<?xml version="1.0" encoding="utf-8"?>
<types>
<s:schema>
<s:element name="GetQuotes">
<s:complexType>
<s:any/>
</s:complexType>
</s:element>
<s:element name="GetQuotesResponse">
<s:complexType>
<s:any/>
</s:complexType>
</s:element>
</s:schema>
</types>
<message name="GetQuotesSoapIn">
<part name="parameters" element="s0:GetQuotes" />
</message>
<message name="GetQuotesSoapOut">
<part name="parameters" element="s0:GetQuotesResponse" />
</message>
<portType name="GetQuoteSOAP">
<operation name="GetQuotes">
<input message="s0:GetQuotesSoapIn" />
<output message="s0:GetQuotesSoapOut" />
</operation>
</portType>
<binding name="GetQuotesSoapBinding" type="s0:GetQuotesSoap">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
<operation name="GetQuotes">
<soap:operation soapAction="http://wso2.com/GetQuotes" style="document" />
<input>
<soap:body use="literal" />
</input>
<output>
<soap:body use="literal" />
<soap:header
message="s0:GetQuotesResponseInfo" part="ResponseInfo" use="literal"
/>
</output>
</operation>
</binding>
<service name="Quotes">
<port name="QuotesSoap" binding="s0:getQuotesSoapBinding">
<soap:address location="http://wso2.com/GetQuotes" />
</port>
</service>
</definitions>