0. In this document...
This is Release Notes of SOAP4R.
Target SOAP4R version: SOAP4R/1.2.0
1. Changes
Checked interoperability with Apache-SOAP, pocketSOAP/0.91, SOAP::Lite for Perl, and SOAP/Perl/0.28. It seems to work good except SOAP/Perl/0.28.
- Added href/id unmarshalling support. (href/id marshalling has not been supported yet)
- Added SOAP's base64 type support.
- SOAPTimeInstant -> SOAPDateTime. Following XML Schema PR.
- SOAPStruct can have multiple accessor which have same name. Should I separate it from original SOAPStruct?
- Unknown attribute in Header Item raised an exception. Omitted.
- Router can handle methods which belong to different namespace.
- Added an option to allow unqualified SOAP element.
- Added Apache's Map type support. Ruby's Hash are mapped to it now. (Ruby's Hash marshalled by 1.1 processor in the old way can be unmarshalled, but 1.2 processor marshals it in the new way and 1.1 processor does not unmarshals it into Hash. Incompatibility between SOAP4R/1.2 and 1.1)
- Unknown type 'unknown:SOAPStruct' was incorrectly unmarshalled into SOAPStruct. Fixed.
- Added utility methods map! and members to SOAPArray and SOAPStruct.
- Added methods request, response, and fault to SOAPBody.
2. Install
Simply, get the archived file and extract it. Files in lib/soap are SOAP4R library program itself. To use this library, copy the directory lib/soap as 'soap' to suitable directory and require it like 'require "soap/..."' since there is no installer yet.
To play with SOAP4R, you also have copy redistributed files below in redist/ to suitable directory.
- date3.rb
- by Funaba-san (http://www.kt.rim.or.jp/~tadf/ruby-en.html)
- parsedate3.rb
- by Funaba-san (http://www.kt.rim.or.jp/~tadf/ruby-en.html)
- http-access.rb
- by Maehashi-san (http://www.jin.gr.jp/~nahi/Ruby/ruby.shtml#http-access)
- uri.rb
- by Koshimizu-san (http://www02.so-net.ne.jp/~greentea/ruby/uri/)
Files in archive:
- lib/soap/
- SOAP4R library program.
- sample/
- Sample program using SOAP4R.
- sample/apacheClient.rb
- SOAP-RPC client sample.
It connects with demonstration server programs stockquote and addressbook in IBM's SOAP for Java or Apache-SOAP.
You have to install the server either SOAP for Java or Apache-SOAP and deploy demostration programs.
To execute;./apacheClient.rb http://localhsot:2020/ibm-soap/rpcrouter.jsp
- sample/apacheServer.rb
- SOAP-RPC CGI server sample emulates Apache-SOAP sample such as AddressBook. Interfaces such as getQuote and getAddressFromName are defined. Only interfaces, no implementation.
- sample/RAA/*
- SOAP-RPC client samples.
- soap4r.rb, soap4rApp.rb: Ruby program using SOAP4R
- xmlrpc4r.rb: Ruby program using xmlrpc4r
- pocketSOAP.js: JScript program using pocketSOAP
- SOAP::Lite.pl: Perl program using SOAP::Lite for Perl
- redist/
- Redistributed programs which SOAP4R is using. I would appriciate to authors of these programs.
- redist/archive/
- Archives. Follow the term of each archive to use these programs.
3. Uninstall
Delete created files at installation.
4. What is SOAP4R?
'SOAP4R' is a Ruby library program to handle Simple Object Access Protocol (SOAP) 1.1 (W3C Note).
As Restrictions, SOAP4R offers only SOAP-RPC specific features now.
Comments, information such as interoperability between SOAP4R and another implementation are welcomed. Feel free sending mail to nakahiro@sarion.co.jp.
5. Dependencies
SOAP4R depends on below programs:
- SOAP4R is a Ruby library program. You have to install Ruby itself. Ruby/1.6 series are required. It does not works on 1.4 series because of class variable.
- SOAP4R delegates XML related processing to XMLParser module. You have to install XMLParser module.
- To play with SOAP-RPC client sample, you have to install IBM's SOAP for Java or Apache SOAP.
6. Restrictions
The following features of the SOAP 1.1 (W3C Note) spec are NOT currently supported:
- SOAP Envelope
- SOAP actor attribute
- SOAP Fault Codes
- encodingStyle in SOAP Envelope must be SOAP Encoding; Does not support literal XML encoding such as in SOAP for Java
- SOAP Encoding
- encodingStyle cannot be changed
- encoding/decoding using XML Schema; Only xsi:type in SOAP Encoding is checked
- Arrays which has two or more dimensions (rank), Partially Transmitted Arrays, and Sparse Arrays
- SOAP root attribute
- Marshalling references to href/id (Unmarshalling is OK)
- Othres
- Transport binding except HTTP server(CGI) and client
- HTTP Extension Framework (M-POST)
- Content-Type is 'text/xml'; Does not support 'charset='.
7. History
- 1.2.0 - March 30, 2001
- Checked interoperability with
Apache-SOAP,
pocketSOAP/0.91,
SOAP::Lite for Perl,
and SOAP/Perl/0.28.
It seems to work good except SOAP/Perl/0.28.
- Added href/id unmarshalling support. (href/id marshalling has not been supported yet)
- Added SOAP's base64 type support.
- SOAPTimeInstant -> SOAPDateTime. Following XML Schema PR.
- SOAPStruct can have multiple accessor which have same name. Should I separate it from original SOAPStruct?
- Unknown attribute in Header Item raised an exception. Omitted.
- Router can handle methods which belong to different namespace.
- Added an option to allow unqualified SOAP element.
- Added Apache's Map type support. Ruby's Hash are mapped to it now. (Ruby's Hash marshalled by 1.1 processor in the old way can be unmarshalled, but 1.2 processor marshals it in the new way and 1.1 processor does not unmarshals it into Hash. Incompatibility between SOAP4R/1.2 and 1.1)
- Unknown type 'unknown:SOAPStruct' was incorrectly unmarshalled into SOAPStruct. Fixed.
- Added utility methods map! and members to SOAPArray and SOAPStruct.
- Added methods request, response, and fault to SOAPBody.
- 1.1.0 - March 23, 2001
- Made many changes.
Since it is tested only for my limited use, please be careful to use.
Any comments especially "cannot connect to XXX implementation" are welcomed.
Feel free sending mail to
nakahiro@sarion.co.jp.
- Added RPC server support.
- Divided RPC client/server implementation from core.
- Added Date, Hash type support. (Unknown type is converted to Struct as usual)
- Adopted Date in date3.rb by Funaba-san instead of Time as TimeInstant.
- Many encoding/decoding bugs around SOAPArray and SOAPStruct were fixed.
- 1.0.2 - November 11, 2000
- Since the previous package dated, refreshes some points.
- Ruby: ruby 1.6.x
- uri.rb: 4.22
- sample: xml-soap/2.0
- 1.0.1 - July 27, 2000
- Handles SOAP/1.1 arrays. 1.0.0 cannot handles SOAP/1.1 arrays... Bare in mind there still be many restrictions around SOAP arrays.
- 1.0.0 - July 17, 2000
- It is the initial released version of SOAP4R. :-)
8. Author
- Name
- NAKAMURA, Hiroshi (aka NaHi or nakahiro)
- nakahiro@sarion.co.jp
- URL
- http://www.jin.gr.jp/~nahi/ (Japanese)
9. Copyright
SOAP4R
Copyright © 2000, 2001 NAKAMURA, Hiroshi.
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License(the file named `COPYING') for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.