ASPN ActiveState Programmer Network
ActiveState
/ Home / Perl / PHP / Python / Tcl / XSLT /
/ Safari / My ASPN /
Cookbooks | Documentation | Mailing Lists | Modules | News Feeds | Products | User Groups


Recent Messages
List Archives
About the List
List Leaders
Subscription Options

View Subscriptions
Help

View by Topic
ActiveState
.NET Framework
Open Source
Perl
PHP
Python
Tcl
Web Services
XML & XSLT

View by Category
Database
General
SOAP
System Administration
Tools
User Interfaces
Web Programming
XML Programming


MyASPN >> Mail Archive >> Apache-Soap-Dev
Apache-Soap-Dev
RE: Base64 --> Base64Serializer - Why?
by Scott Nichol other posts by this author
Jun 23 2003 5:44PM messages near this date
RE: Base64 --> Base64Serializer - Why? | Case sensitive urls or case insensitive urls ..... thats the question
History:

When Apache SOAP (actually, IBM SOAP4J) started, it was based on the 
SOAP and XML Schema specs of the day.  Since XML Schema did not 
define a type for Base64 encoded data, the SOAP spec defined one, and 
that was the type Apache SOAP used.  By Apache SOAP 2.2, there were 
also 2000 and 2001 revisions to the XML Schema specification, for 
which Apache SOAP provided some support for deserialization of these, 
but the 1999 spec was still used for serialization.  In the period 
between Apache SOAP 2.2 and 2.3.1, more 2001 schema types were 
supported, including the base64Binary type.  With 2.3.1, the 2001 
spec became the default used for serialization, because it added 
several types, support for which was required to maximize 
interoperability with other SOAP implementations.  Client apps could 
override this in the way they constructed the SOAPMappingRegistry, 
but services had no way to control this, although they could override 
the mappings in the deployment descriptor.

At this point, the only way to have a 2.3.1 (and later) based service 
send base64 that a 2.2 client will understand is to add the 
deployment descriptor mapping.  It would be "nice" if Apache SOAP 
could sense older clients (specifically, ones using the 1999 schema) 
and use older the older schema for serialization, but the current 
code does not do that.

On 23 Jun 2003 at 10:38, Richard Bolen wrote:

>  Perhaps more to the point is what the xsi:type attribute is set to for
>  the byte[] element I'm trying to send:
>  
>  SOAP 2.2:  
>  <objectBuffer xmlns:ns2="http://schemas.xmlsoap.org/soap/encoding/"
>  xsi:type="ns2:base64">
>  
>  SOAP 2.3.1 June 20 Nightly Build:  
>  <objectBuffer xsi:type="xsd:base64Binary">
>  
>  Can I force it to use the old ns2:base64 type?
>  
>  
>  -----Original Message-----
>  From: Richard Bolen 
>  Sent: Monday, June 23, 2003 9:46 AM
>  To: soap-dev@[...].org
>  Subject: Base64 --> Base64Serializer - Why?
>  
>  
>  I recently tried upgrading to the latest nightly build of SOAP (June 20,
>  2003) from 2.2.  I needed this to support HTTPS over a proxy server.
>  
>  The problem I had was that it suddenly started using a different SOAP
>  serializer type for byte[] content (Base64Serializer instead of Base64).
>  I had to change my server config to add the new serializer
>  (Base64Serializer).  The problem is that I have existing servers that I
>  have to support and I can't change their config to add the serializer.
>  This basically broke backwards compatibility.
>  
>  Why was this change made?  Also, is there anything I can do to fix it?
>  Can I force it to use the old serializer?  
>  
>  Thanks,
>  Rich
>  


Scott Nichol

Do not reply directly to this e-mail address,
as it is filtered to only receive e-mail from
specific mailing lists.
Thread:
Richard Bolen
Scott Nichol
Henk Schipper

Privacy Policy | Email Opt-out | Feedback | Syndication
© ActiveState Software Inc. All rights reserved