
Thanks for using gSOAP!

gSOAP provides a cross-platform development toolkit for developing server,
client, and peer Web service applications in C and C++.

* The gSOAP 'soapcpp2' compiler and 'stdsoap2' runtime are stable since
  version release 2.1.3.

* The gSOAP 'wsdl2h' WSDL parser is stable beta 1.0.3. The WSDL parser 
  fully supports WSDL 1.1 and XML schemas. See also 'PROJECT STATUS' below.

The software is provided "as is", without any warranty.  However, gSOAP
has received a lot of support from users and has been extensively tested
in the real world.  We also continue to improve gSOAP and add new features.

WHAT'S COOL?

The gSOAP WSDL parser is a gSOAP application itself, which demonstrates the
capabilities of the generic XML handling by the toolkit to parse WSDL, XML
schemas, and SOAP/XML.

gSOAP supports streaming technologies to expedite SOAP/XML and binary DIME
attachment transfers.  It is the only toolkit that supports streaming DIME
transfers of potentially unlimited binary data lengths.

gSOAP is the only toolkit that supports the serialization of native C and C++
data types.  You can use it to export and import your application data in XML
without having to write wrapper routines.

gSOAP ensures as small memory footprint, because XML is a processed as a
transient format and not buffered.  Many optimizations have been applied to
reduce resource requirements and to expedite XML parsing.

INSTALLATION

See NOTES.txt for distribution notes and installation instructions.

GETTING STARTED

The gSOAP WSDL parser converts WSDL into a gSOAP header file for processing
with the gSOAP stub and skeleton compiler to build your Web services
applications.  You can use the WSDL parser to translate WSDL and/or XML schemas
into C or C++ data structures and XML parsers. You can also use the gSOAP
compiler separately to create XML serialization routines for application data.

For examle:

$ wsdl2h -o Amazon.h http://soap.amazon.com/schemas/AmazonWebServices.wsdl

$ soapcpp2 Amazon.h

This generates the Amazon.h header file.  This file contains a translation of
the services and XML schemas to C/C++ and other useful information copied from
the WSDL.  The header file is then processed by the gSOAP stub and skeleton
compiler to generate the following files:

soapClient.cpp		client-side stub routines for service invocation
soapServer.cpp		server-side skeleton routines for server development
soapC.cpp		C/C++ parameter marshalling code

A C++ client application may also use the generated
'soapAmazonSearchBindingProxy.h' class and 'AmazonSearchBinding.nsmap' XML
namespace table to access the Amazon Web service.  Both need to be '#include'-d
in your source.  Compile and link the soapC.cpp, soapClient.cpp, and
stdsoap2.cpp sources to complete the build.  More information can be found in
the gSOAP documentation and the Quick How-To page on the gSOAP Web site.

See also the 'wsdl/README.txt' for more details on the WSDL parser and
installation (in case you don't have the wsdl2h executable).

See the 'samples' directory for example gSOAP Web service applications.

PROJECT STATUS

There are always new things to be desired. Here is a short list of things
we are currently working on:

* wsdl2h is a new tool and will be further tested in the field before
  stable status can be established. Notably the SOAP header and fault parts may
  cause issues.
* WSDL 2.0 support
* WS-Security support
* HTTP/MIME attachment handling

LICENSE

gSOAP is distributed under two licenses:

* The gSOAP public open source license (which is based on the Mozilla public
  license 1.1). See license.html or license.pdf for further details.

* GPL (GNU Public License).

Most parts are distributed under both the gSOAP license and GPL.  You can
choose which license applies best to your use.  Some parts of gSOAP are
strictly distributed under the GPL.  

Please refer to the README files and/or header information in source code files
for the appropriate licensing specific to that part of the source code.  The
gSOAP public license, unlike GPL, allows for commercial use of gSOAP.  It also
allows products to be built on top and distributed under any license (including
commercial).  Products developed with gSOAP should include a notice of
copyright and a disclaimer of warranty in the product's documentation (License
Exhibit B).  The source code generated by the gSOAP compiler 'soapcpp2' is also
covered by the gSOAP public license, which means that you can use it for
commercial purposes.

The parts of the code that are strictly distributed under the GPL (i.e. the code
that is only distributed under GPL and not jointly under GPL and gSOAP public
license) cannot be used for commercial purposes. These parts are:

* The wsdl2h WSDL parser source code and the code generated by it.

* The examples included in the gSOAP distribution package 'samples' directory.

A commercial license is available for the GPL licensed software. Please refer
to the license details at http://www.genivia.com/Products/gsoap/contract.html
for further details.

COPYRIGHT

gSOAP is copyrighted by Robert A. van Engelen, Genivia, Inc.
Copyright (C) 2000-2004 Robert A. van Engelen, Genivia, Inc.
All Rights Reserved.

USE RESTRICTIONS

You may not: (i) transfer rights to gSOAP or claim authorship; or (ii) remove
any product identification, copyright, proprietary notices or labels from gSOAP.

LIBRARIES

gSOAP is self-contained and does not require any third-party software, except
for the Zlib and OpenSSL libraries that must be installed to support
compression and encryption. Compression and encryption are optional.

To build the gSOAP 'soapcpp2' compiler, you must have Bison and Flex installed
(or the older Yacc and Lex equivalents).

Win32 build of clients and services requires winsock.dll. To do this in
Visual C++ 6.0, go to "Project", "settings", select the "Link" tab (the
project file needs to be selected in the file view) and add "wsock32.lib" to
the "Object/library modules" entry. The Win32 distribution contains two
MSVC++ project examples. The custom build in VC++ 6.0 has been configured to
invoke the gSOAP compiler automatically. The VC++ projects can be converted to
MSVC++ 7.0.

DISCLAIMER

WE TRY OUR BEST TO PROVIDE YOU WITH "REAL-WORLD" EXAMPLES BUT WE CANNOT
GUARANTEE THAT ALL CLIENT EXAMPLES CAN CONNECT TO THIRD PARTY WEB SERVICES
WHEN THESE SERVICES ARE DOWN OR HAVE BEEN REMOVED.

