0.13.0 (2016-07-17)
-------------------
 - Use warnings.warn() for duplicate target namespaces instead of raising an
   exception. This better matches with what lxml does.
 - **backwards-incompatible**: The ``persistent`` kwarg is removed from the
   SqliteCache.__init__() call. Use the new InMemoryCache() instead when you
   don't want to persist data. This was required to make the SqliteCache 
   backend thread-safe since we now open/close the db when writing/reading 
   from it (with an additional lock).
 - Fix zeep.helpers.serialize_object() for nested objects (#123)
 - Remove fallback between soap 1.1 and soap 1.2 namespaces during the parsing
   of the wsdl. This should not be required.


0.12.0 (2016-07-09)
-------------------
 - **backwards-incompatible**: Choice elements are now unwrapped if 
   maxOccurs=1. This results in easier operation definitions when choices are
   used. 
 - **backwards-incompatible**: The _soapheader kwarg is renamed to _soapheaders
   and now requires a nested dictionary with the header name as key or a list
   of values (value object or lxml.etree.Element object). Please see the 
   call signature of the function using ``python -mzeep <wsdl>``.
 - Support the element ref's to xsd:schema elements.
 - Improve the signature() output of element and type definitions
 - Accept lxml.etree.Element objects as value for Any elements.
 - And various other fixes
 

0.11.0 (2016-07-03)
-------------------
 - **backwards-incompatible**: The kwarg name for Any and Choice elements are
   renamed to generic ``_value_N`` names.
 - **backwards-incompatible**: Client.set_address() is replaced with the 
   Client.create_service() call
 - Auto-load the http://schemas.xmlsoap.org/soap/encoding/ schema if it is
   referenced but not imported. Too many XSD's assume that the schema is always
   available.
 - Major refactoring of the XSD handling to correctly support nested 
   xsd:sequence elements. 
 - Add ``logger.debug()`` calls around Transport.post() to allow capturing the
   content send/received from the server
 - Add proper support for default values on attributes and elements.


0.10.0 (2016-06-22)
-------------------
 - Make global elements / types truly global by refactoring the Schema 
   parsing. Previously the lookups where non-transitive, but this should only
   be the case during parsing of the xml schema.
 - Properly unwrap XML responses in soap.DocumentMessage when a choice is the
   root element. (#80)
 - Update exceptions structure, all zeep exceptions are now using 
   zeep.exceptions.Error() as base class.


0.9.1 (2016-06-17)
------------------
 - Quote the SOAPAction header value (Derek Harland)
 - Undo fallback for SOAPAction if it is empty (#83)
 

0.9.0 (2016-06-14)
------------------
 - Use the appdirs module to retrieve the OS cache path. Note that this results
   in an other default cache path then previous releases! See 
   https://github.com/ActiveState/appdirs for more information.
 - Fix regression when initializing soap objects with invalid kwargs.
 - Update wsse.UsernameToken to set encoding type on nonce (Antonio Cuni)
 - Remove assert statement in soap error handling (Eric Waller)
 - Add '--no-verify' to the command line interface. (#63)
 - Correctly xsi:type attributes on unbounded elements. (nicholjy) (#68)
 - Re-implement xsd:list handling
 - Refactor logic to open files from filesystem.
 - Refactor the xsd:choice implementation (serializing/deserializing)
 - Implement parsing of xsd:any elements.


0.8.1 (2016-06-08)
------------------
 - Use the operation name for the xml element which wraps the parameters in 
   for soap RPC messages (#60)


0.8.0 (2016-06-07)
------------------
 - Add ability to override the soap endpoint via `Client.set_address()`
 - Fix parsing ComplexTypes which have no child elements (#50)
 - Handle xsi:type attributes on anyType's correctly when deserializing 
   responses (#17)
 - Fix xsd:restriction on xsd:simpleType's when the base type wasn't defined
   yet. (#59)
 - Add xml declaration to the generate xml strings (#60)
 - Fix xsd:import statements without schemaLocation (#58)


0.7.1 (2016-06-01)
------------------
 - Fix regression with handling wsdl:import statements for messages (#47)


0.7.0 (2016-05-31)
------------------
 - Add support HTTP authentication (mcordes). This adds a new attribute to the
   Transport client() which passes the http_auth value to requests. (#31)
 - Fix issue where setting cache=None to Transport class didn't disable 
   caching.
 - Refactor handling of wsdl:imports, don't merge definitions but instead 
   lookup values in child definitions. (#40)
 - Remove unused namespace declarations from the generated SOAP messages.
 - Update requirement of six>=1.0.0 to six>=1.9.0 (#39)
 - Fix handling of xsd:choice, xsd:group and xsd:attribute (#30)
 - Improve error messages
 - Fix generating soap messages when sub types are used via xsd extensions (#36)
 - Improve handling of custom soap headers (#33)


0.6.0 (2016-05-21)
------------------
 - Add missing `name` attributes to xsd.QName and xsd.NOTATION (#15)
 - Various fixes related to the Choice element
 - Support xsd:include
 - Experimental support for HTTP bindings
 - Removed `Client.get_port()`, use `Client.bind()`.


0.5.0 (2015-05-08)
------------------
 - Handle attributes during parsing of the response values>
 - Don't create empty soap objects when the root element is empty.
 - Implement support for WSSE usernameToken profile including 
   passwordText/passwordDigest.
 - Improve XSD date/time related builtins.
 - Various minor XSD handling fixes 
 - Use the correct soap-envelope XML namespace for the Soap 1.2 binding
 - Use `application/soap+xml` as content-type in the Soap 1.2 binding
 - **backwards incompatible**: Make cache part of the transport object 
   instead of the client.  This changes the call signature of the Client() 
   class.  (Marek Wywiał)
 - Add the `verify` kwarg to the Transport object to disable ssl certificate
   verification. (Marek Wywiał)


0.4.0 (2016-04-17)
------------------
 - Add defusedxml module for XML security issues
 - Add support for choice elements
 - Fix documentation example for complex types (Falk Schuetzenmeister)


0.3.0 (2016-04-10)
------------------
 - Correctly handle recursion in WSDL and XSD files
 - Add support for the XSD Any element
 - Allow usage of shorthand prefixes when creating elements and types
 - And more various improvements


0.2.5 (2016-04-05)
------------------
 - Temporarily disable the HTTP binding support until it works properly
 - Fix an issue with parsing SOAP responses with optional elements


0.2.4 (2016-04-03)
------------------
 - Improve xsd.DateTime, xsd.Date and xsd.Time implementations by using the
   isodate module.
 - Implement xsd.Duration 


0.2.3 (2016-04-03)
------------------
 - Fix xsd.DateTime, xsd.Date and xsd.Time implementations
 - Handle NIL values correctly for simpletypes


0.2.2 (2016-04-03)
------------------
 - Fix issue with initializing value objects (ListElements)
 - Add new `zeep.helpers.serialize_object()` method
 - Rename type attribute on value objects to `_xsd_type` to remove potential
   attribute conflicts


0.2.1 (2016-04-03)
------------------
 - Support minOccurs 0 (optional elements)
 - Automatically convert python datastructures to zeep objects for requests.
 - Set default values for new zeep objects to None / [] (Element, ListElement)
 - Add `Client.get_element()` to create custom objects


0.2.0 (2016-04-03)
------------------
 - Proper support for XSD element and attribute forms (qualified/unqualified)
 - Improved XSD handling
 - Separate bindings for Soap 1.1 and Soap 1.2
 - And again various other fixes


0.1.1 (2016-03-20)
------------------
 - Various fixes to make the HttpBinding not throw errors during parsing
 - More built-in xsd types
 - Add support for `python -mzeep <wsdl>`
 - Various other fixes


0.1.0 (2016-03-20)
------------------

Preview / Proof-of-concept release. Probably not suitable for production use :)
