4s4c can dynamically generate WSDL (Web Services Description Language) that describes the methods the soap endpoint exposes.
The WSDL is accessed by appending ?WSDL to the query string,
Rather than dynamically generating the WSDL for each request, you can save a static copy and have clients point at that instead.
This would currently be done via a browser, a future release of 4s4c will have a command line tool & GUI tool to generate
the WSDL file.
As of v1.3.5, 4s4c generates WSDL using the 2001 Schema version
As of v1.3.3, 4s4c generates WSDL in the 1.1 format (this only really affects the definition of arrays)
If you are exposing methods that use arrays or complex types, then the WSDL will contain an XML Schema definition of the
complex types. The schema definition uses the Recommendation version of XML Schema (the http://www.w3.org/2001/XMLSchema namespace).
Generated names in the WSDL file
A number of places in the WSDL file (port names and the service name) pull defaults from the COM type information, however these
can be override by specifying the relevant attributes in the configuration file, see the configuration file section for details.
The WSDL support has been tested with basic types with the following client toolkits
WSDL is still in its infancy particularly in terms of implementations, and i have been unsucessful in getting any
of the WSDL toolkits to inter-op at the array or complex type level, with the exception of the Microsoft Toolkit v2.0, which
interop's both arrays and complex types fine, when using 4s4c v1.3.3 or greater.
- SOAP::Lite 0.45 (requires a patch, see below)
- IdooXoap Java 1.0
- Microsoft SOAP Toolkit v2.0
- Microsoft .NET beta 2 WSDL Proxy tool [wsdl.exe]
In testing the SOAP::Lite WSDL support, we ran into a problem with having multiple interfaces exposed in a single endpoint.
Paul Kulchenko (author of SOAP::Lite) provided the following patch.
Simply replace the existing sub of the same name with the new version. This patch will be included in the next release of SOAP::Lite.
<<< Supported Data Types
>>> Service Description