Release notes for SOAP::WSDL 2.00_16
-------

I'm proud to present a new pre-release version of SOAP::WSDL.

SOAP::WSDL is a toolkit for creating WSDL-based SOAP client interfaces in perl.

Features:

    * WSDL based SOAP client
          o SOAP1.1 support
          o Supports document/literal message style/encoding
    * Code generator for generating WSDL-based interface classes
          o Generated code includes usage documentation for the web service interface
    * Easy-to use API
          o Automatically encodes perl data structures as message data
          o Automatically sets HTTP headers right
    * SOAP::Lite like look and feel
          o Where possible, SOAP::WSDL mimics SOAP::Lite's API to allow easy migrations
    * XML schema based class library for creating data objects
    * High-performance XML parser
    * Plugin support. SOAP::WSDL can be extended through plugins in various aspects. 
      The following plugins are supported:
          o Transport plugins via SOAP::WSDL::Factory::Transport
          o Serializer plugins via SOAP::WSDL::Factory::Serializer
          o Deserializer plugins via SOAP::WSDL::Factory::Serializer

  
The following changes have been made:
2.00_16
----
The following features were added (the numbers in square brackets are the 
tracker IDs from https://sourceforge.net/tracker/?group_id=111978&atid=660924):

   * [ 1761532 ] Support embedded atomic types
   SOAP::WSDL now supports a greater variety of XML Schema type definitions.
   Note that XML Schema support is still incomplete, though.
   * [ 1797943 ] Create Perl Hash Deserializer
   There's a new deserializer which outputs perl hashes as data structures.
   Much like XML::Simple, but faster. No XML Attribute support, though.
   * [ 1797678 ] Move Code generator from WSDL::Definitions to separate class
   * [ 1803330 ] Create one interface per port
   SOAP::WSDL now creats one interface per port, not one per service.

The following bugs have been fixed (the numbers in square brackets are the 
tracker IDs from https://sourceforge.net/tracker/?group_id=111978&atid=660921):

   * [ 1804441 ] parts from binding not regarded in SOAP::WSDL
   SOAP::WSDL (interpreter mode) now respects the body parts specified in the 
   binding.
   * [ 1803763 ] nonNegativeInteger misspelled in Schema::Builtin
   * [ 1793965 ] _expand() does not work on non-root-node ns declarations
   * [ 1792348 ] 006_client.t requires SOAP::Lite in 2.00_15
   SOAP::WSDL no longer attempts to load SOAP::WSDL::Deserializer::SOM when 
   no_dispatch is set.
   006_client.t now sets outputxml(1), to be really sure.
   
The following uncategorized improvements have been made:   

   * Code generator only generates interface for the first port in a service
   The code generator now generates interfaces for all ports.
   Note: The naming scheme has changed. It is now
    InterfacePrefix::Service::Port
   
   * XML Parser speedup
   The XML parser has received a little speedup.
   
   * A number of errors in parsing / traversing WSDL documents have been 
   corrected.
   
   * Documentation has been improved
   
   * A number of (incorrect, but passing) tests have been fixed.

   * Code cleanup: The SOAP::WSDL::SAX* modules are no longer included, as they 
   are not supported any more. They can still be found in SOAP::WSDL's 
   subversion repository in the attic directory, though.
   
2.00_15
----

The following bugs have been fixed (the numbers in square brackets are the 
tracker IDs from https://sourceforge.net/tracker/?group_id=111978&atid=660921):

   * [ 1792321 ] 2.00_14 requires SOAP::Lite for passing tests

2.00_14
----

The following bugs have been fixed (the numbers in square brackets are the 
tracker IDs from https://sourceforge.net/tracker/?group_id=111978&atid=660921):

   * [ 1792235 ] SOAP::WSDL::Transport::Test missing from 2.00_13
   The package has been re-added

   * [ 1792221 ] class_resolver not set from ::Client in 2.00_13
   Changed to set class_resolver correctly.

The following uncategorized improvements have been made:

   * The ::SOM deserializer has been simplified to be just a subclass 
   of SOAP::Deserializer from SOAP::Lite
   * Factories now emit more useful error messages when no class is registered
   for the protocol/soap_version requested
   * Documentation has been improved
      - refined ::Factory:: modules' documentation
   * Several tests have been added
   * XSD classes have been improved for testability

2.00_13
----
The following features were added (the numbers in square brackets are the 
tracker IDs from https://sourceforge.net/tracker/?group_id=111978&atid=660924):

   * [ 1790619 ] Test transport backend
   A test transport backend has been implemented (SOAP::WSDL::Transport::Test).
   It returns the contents from a file and discards the response.
   The filename is determined from the soap_action field.
   
   * [ 1785196 ] Replace outputsom(1) by deserializer plugin
   outputsom(1) in SOAP::WSDL is now implemented via using the deserializer 
   plugin SOAP::WSDL::Deserializer::SOM.

   * [1785195] Support deserializer plugins
   Deserializer plugin API added via SOAP::WSDL::Factory::Deserializer.
  
The following bugs have been fixed (the numbers in square brackets are the 
tracker IDs from https://sourceforge.net/tracker/?group_id=111978&atid=660921):

   * [1789581] Support ComplexType mixed
   WSDL parser now supports using the mixed="true" attribute in complexType 
   definitions. Mixed content in messages is only supported via SOAP::SOM yet.

   * [1787975] 016_client_object.t fails due to testing XML as string
   Removed string test.
  
   * [1787959] Test wsdl seems to be broken
   Corrected typo.
  
   * [1787955] ::XSD::Typelib::date is broken
   SOAP::WSDL::XSD::Typelib::Builtin::date now converts time-zoned dates properly, 
   and adds the local time zone if none is given.

   * [1785646] SOAPAction header not set from soap:operation soapAction
   SOAP::WSDL now sets the SOAPAction header correctly.

The following uncategorized improvements have been made:

   * Documentation improvements

2.00_12
----
  
The following bugs have been fixed (the numbers in square brackets are the 
tracker IDs from https://sourceforge.net/tracker/?group_id=111978&atid=660921):

   * [1787146] SOAP::WSDL still uses XML::LibXML
   The superficious usage of XML::LibXML has been removed. XML::LibXML with 
   sax filter has been replaced by SOAP::WSDL::Expat::WSDLParser.
   
   * [1787054] Test suite requires XML::LibXML in 2.00_11
   The test suite no longer requires XML::LibXML to pass.

   * [1785678] SOAP envelope not checked for namespace
   The SOAP envelope is now checked for the correct namespace.
   
   * [1786644] SOAP::WSDL::Manual - doc error
   Documentation improvements
    
The following uncategorized improvements have been made

   * The SOAPAction header is now alway quoted (R1109 in WS-I BP 1.0).
   
2.00_11
----

The following features were added (the numbers in square brackets are the 
tracker IDs from https://sourceforge.net/tracker/?group_id=111978&atid=660924):

  * [1767963] Transport plugins via SOAP::WSDL::Factory::Transport.
    SOAP::WSDL uses SOAP::Lite's tranport modules as default, with a 
    lightweight HTTP(S) transport plugin as fallback.
    Custom transport modules can be registered via SOAP::WSDL::Factory::Transport.

  * [ 1772730 ] Serializer plugins via SOAP::WSDL::Factory::Serializer 
    The default serializer for SOAP1.1 is SOAP::WSDL::Serializer::SOAP11.
    Custom serializers classes can be registered via 
    SOAP::WSDL::Factory::Serializer or set via SOAP::WSDL's set_serializer 
    method.

The following bugs have been fixed (the numbers in square brackets are the 
tracker IDs from https://sourceforge.net/tracker/?group_id=111978&atid=660921):

   * [ 1764854 ] Port WSDL parser to expat and remove XML::LibXML dependency
     SOAP::WSDL now requires only XML::Parser to be installed.
     XML::LibXML is not required any more, though XML::LibXML based modules still 
     exist.

The following uncategorized improvements have been made

   * The number of dependencies has been reduced. SOAP::WSDL no longer requires the 
     following modules to be installed:
        - XML::SAX::Base
        - XML::SAX::ParserFactory
        - Pod::Simple::Text
        - XML::LibXML

   * The missing prerequisite Template has been added.
   * Documentation has been improved:
        - WS-I Compliance document added.


2.00_10
----
   * Changed Makefile.PL to use Module::Build (passthrough mode)
   * fixed element ref="" handling

2.00_09
----
   * SOAP::WSDL::XSD::Typelib::Builtin::boolean objects now return their numerical 
     value in bool context, not "true" or "false" (always true...)
   * date/time test are now timezone-sensitive
   * examples added

2.00_08
---
   * SOAP::WSDL::XSD::Typelib::ComplexType objects now check the class of their 
     child objects.
     This provides early feedback to developers.
   * SOAP message parser can skip unwanted parts of the message to improve parsing 
     speed - see SOAP::WSDL::Expat::MessageParser for details.
   * HTTP Content-Type is configurable
   * SOAP::WSDL::XSD::Typelib::ComplexType based objects accept any combination of 
     hash refs, list refs and objects as parameter to set_value() and new().
   * SOAP::WSDL::XSD::Typelib::Builtin::dateTime and ::date convert date 
      strings into XML date strings
   * SOAP::WSDL::Definitions::create now
      - converts '.' in service names to '::' (.NET class separator to perl class 
      separator)
      - outputs Typemaps and Interface classes in UTF8 to allow proper inclusion 
      of UTF8 documentation from WSDL
   * SOAP::WSDL::Definitions::create() includes doc in generated interface classes
   * WSDLHandler now handles <wsdl:documentation> tags
   * fixed explain in SimpleType, ComplexType and Element

2.00_07 and below
---
   * Implemented a Code generator for creating SOAP interfaces based on WSDL definitions
   * Implemented a high-speed stream based SOAP message parser
     SOAP message parser returns a objects based on XML schema based class library
   * Implemented a XML schema based class library 
   * Implemented a stream based WSDL parser.
     Parses WSDL into objects. Objects can serialize data, and explain how to use the 
     service(s) they make up (output documentation).
