Changes in 1.5.6
Here are changes in 1.5.6 from 1.5.5.
- SOAP/Ruby mapping
- specify sending XML document over SOAP by REXML::Element or to_xmlproc -able object. (#21)
- encode or decode of single basetype parameter according to type definition in rpc/encoded service. (#14, #98)
- determining rpc method paramaters and outputs at runtime with MethodDefCreator?#{collect_rpcparameter|collect_documentparameter} (#142)
- support an array element name other than 'item' in document/literal service. (#150)
- let document/literal service proxy generated by WSDLDriverFactory accept key-value pair array of array ([['k1', 'v1'], ...]) as same as a hash ({'k1' => 'v1', ...}). (#156)
- allow an XSD::QName as a value of extraattr such as <elename xmlns:n1="urn:valuenamespace">n1:value</elename>. (#157)
- SwA and doc/lit service. (#165)
- allow to define an empty SOAP Body service. Thanks, emil. (#174)
- method overloading support. allow to define methods which have same name and different signatures, and let Router invoke a method according to SOAPAction. you need to define methods with different SOAPAction. (#233)
- let Driver#generate_explicit_type work for ltieral service, too. (#234)
- get the raw XML from the response. you get a result as an XML string when you set Driver#return_response_as_xml = true. (#250)
- do not validate CES of String by default to avoid consuming memory. let XML processor check it instead. (you can turn it on by XSD::XSDString.strict_ces_check = true) (#265)
- allow SOAP::Mapping::Object to dump/load with marshal_dump/marshal_load. (#266)
- handle CDATA correctly with xmlscan and rexml (only xmlparser worked). (#332)
- defined omit element / xsi:nil="true" elemet control. nil means xsi:nil="true" for encoded service and nil means element omission for literal service. pass SOAPNil.new to pass xsi:nil="true" for literal service. (#343)
- one-way service support. (#200, #346, #347)
- offer clearly defined message interceptor API. see test/soap/filter for more detail. (#350)
- SOAPElement.from_obj(obj): allow to set XML attribute. this method is called when you pass a Hash or [['key1', 'value1'], ...] to literal service so you can easily add XML attribute to a request. see #331 for more detail. (#331)
- Payload
- merged a patch from Ernie that enables httpserver to serve WSDL. (#161)
- allow user to set own streamhandler of a SOAP::RPC::Driver. (#180)
- let Driver#test_loopback_response work under soap4r + net/http. (#181)
- allow to define basic_auth parameters with property file. (#198)
- follow HTTP redirection even with net/http. (#280)
- [ruby-Bugs-7532] make SOAP::HTTPStreamHandler handle gzipped content. Thanks, John Anderson. (#310)
- SOAP format
- SOAP actor name can be set through HeaderHandler?. (#19)
- support xsd:token and xsd:language. Thanks, Jirka Pech. (#252)
- let XSD::QName immutable. (#274)
- allow Header::Handler to access SOAPHeader from inside of on_outbound. (#354)
- WSDL
- support <xsd:list> of <xsd:simpleType>. (#3, #248)
- support <xsd:union> of memberTypes. (#6)
- support <xsd:extension> for <xsd:complexContent>. (#72)
- support <any>. (#148, #155)
- support <xsd:restriction> for <xsd:complexContent>. (#167)
- support <choice>. (#168, #205)
- support simpleContent + attribute extension. (#176)
- generate Array classdef for maxOccurs="unbounded" element. (#182)
- support minLength and maxLength attributes. (#185)
- support abstract attribute of complexTypes. (#195)
- moved @@schema_* things in classdef definition generated by wsdl2ruby.rb to mapping registry. Mapping registries for each classdef are defined in independent file and required from driver and server. NOTE: old classdef files should still work but it should be re-generated by new wsdl2ruby.rb. (#175, #267, #270)
- support wsdl:fault definitions. Thanks, Peter Gardfjall. (#319)
- Samples
- add a demo how to call from Excel a simple soap service running in apache (sample/soap/mssoap/) Thanks, an 'anonymous contributor from Wall St.' (#143, #154)
- a sample to send an integer as Long type. (#160)
- an eBaySvc sample by Greg. Thanks! (#183)
- basicauth client + server sample. (#249)
- cookie client + server sample. (#321)
- misc
- Bug fixes
- SOAP/Ruby mapping: #184, #186, #187, #188, #190, #220, #224, #225, #226, #228, #229, #230, #238, #241, #242, #254, #268, #289, #302, #311, #312, #316, #328, #333, #336
- Payload: #172, #215, #236, #264
- SOAP format: #177, #237
- WSDL: #151, #152, #158, #162, #163, #169, #170, #178, #189, #191, #194, #199, #201, #203, #204, #216, #227, #231, #232, #239, #240, #245, #246, #247, #258, #260, #262, #263, #267, #271, #272, #273, #275, #284, #285, #300, #304, #306, #309, #313, #317, #322, #325, #326, #327, #335, #337, #342, #344, #348, #349, #352, #353
- misc: #153, #192, #251, #277, #282, #329