# The WebServices Project

# WebServices documentation

## What are the WebServices classes?

The WebServer library contains a collection of classes to be used for creating client and server 'web service' applications.

The GWSService class is used to make RPCs as a client. This class makes use of GWSCoder classes to serialize the request before sending it to the remote system, and to deserialize the response received.
Different GWSCoder sublasses handle different encoding mechanisms, and this library provides one for XMLRPC (because it's a nice, simple mechanism good for most normal applicatiions), and one for SOAP (because, while it's a horrible, bloated, designed-by-comittee mechanism, it's also the most common one by far and the standard one for web services).
The GWSCoder base class provides support for decoding an XML document to a tree of GWSElement objects, and encoding a tree of GWSElement objects to form an XML document.
The GWSElement class represents an element in an XML document and provides a concise set of methods for locating and manipulating the elements within a tree representing the entire document.
The remaining classes in the library provide support for WSDL, allowing a WSDL document to be parsed, and SOAP calls to be made to a service described in the WSDL, with binding information from the WSDL used to build the calls from a minimal set of parameters.

# API Documentation

The index below lists the major components of the WebServices documentation.

Title Index

- GWSBinding class documentation
- GWSCoder documentation
- GWSDocument class documentation
- GWSElement class documentation
- GWSExtensibility documentation
- GWSMessage class documentation
- GWSPort class documentation
- GWSPortType class documentation
- GWSService class documentation
- GWSType class documentation
- Constants
- WSSUsernameToken class documentation