<h1>Summary</h1>

<p>
The distribution provides both client side access to Web Services and server side creation of Web Services. Currently only document/literal and rpc/encoded with HTTP Soap transport are supported on the client side. The server side currently works with several web servers(see below).  It provides all services as document/literal over HTTP Soap transport. Documentation for the package, including examples can be found here. The distribution consist of several packages.
</p>

<h1>Mirrors</h1>
<p>
This project has the following public repositories:
<ul>
Tcl/Tk host] -- This is the main repository.  Please enter all tickets, checkin, etc here.
App host]
</ul>
</p>
<p>
If you decide to make a public mirror of this repository, please me to location so that we can list it here.
</p>

<h1>Documentation</h1>
Documentation for the  tclws package is available at the following links:
<ul>
<li><a Trunk</a>
<li><a 2.3.8</a>
</ul>

<p>
The client is known to work with several providers of  Web Services (your mileage may very).
Also these [clients] have been tested to work with the Web Services provided by the WS::Server (server side) package of tclws.
</p>

<h1>Web Servers</h1>

<p>
 The server side works with the following web servers (see [WebServerSettings| Web Server Settings] for known required options):
<ul>
<li>
 <li> Apache with
 <li>
 <li>
 <li>
 <li> Embedded mode (see [Embedding])
 <li> Microsoft Internet Information Server
</ul>
</p>

<h1>Download</h1>

<p>
ZIP and Tarball files are available for downloading at the [Downloads] page.
</p>

<h1>License</h1>

<p>
Standard BSD [license].
</p>

<h1>Packages Required</h1>

<p>
The following packages are used:
<ul>
<li> 8.5]
 <li> 0.8.1]
 <li>
 <li> log from
 <li> uri from
 <li> struct::set from
 <li> http from itself
</ul>
</p>

<p>
Additionally, if you are running the on Windows, it is highly recommended that you use the extension.
</p>

<p>
Lastly the following packages are additionally used in Embedded mode:
<ul>
 <li> base64 from
 <li> html from
 <li> ncgi from
 <li> fileutil from
</ul>
</p>

<h1>Standards</h1>

TCLWS implements a limited set of standards used under the keyword "Web-Service".

<h2>Implemented standards</h2>

<h3>WSDL</h3>

WSDL describes an XML document (the WSDL file), which describes the methods and their parameters of the web service.

WSDL 1.1 is supported only. Spec:

<h3>SOAP</h3>

SOAP describes the format of the call and response XML messages.

SOAP 1.0 is supported only. Spec:

<h2>Missing features compared to the standards</h2>

<h3>Webservice call does not support namespace prefixes in subelement if not unique</h3>

As TCLWS only supports global namespace prefixes, it copies any namespace prefix in a subelement to the root.
An error will rise if this causes an ambiguity.

Thus, the following WSDL will lead to an error:
<verbatim>
<wsdl:definitions xmlns:q1="URI1" ...>
   <xs:element xmlns:q1="URI2" type="q1:MessageQ1"/>
</verbatim>
While the following two are o.k.:
<verbatim>
<wsdl:definitions xmlns:q1="URI1" ...>
   <xs:element xmlns:q1="URI1" type="q1:MessageQ1"/>
</verbatim>
and
<verbatim>
<wsdl:definitions xmlns:q1="URI1" ...>
   <xs:element xmlns:q2="URI2" type="q2:MessageQ1"/>
</verbatim>