axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From bugzi...@apache.org
Subject DO NOT REPLY [Bug 15219] New: - sendXsiTypes=false generates invalid multiRef encoding
Date Tue, 10 Dec 2002 08:45:56 GMT
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=15219>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=15219

sendXsiTypes=false generates invalid multiRef encoding

           Summary: sendXsiTypes=false generates invalid multiRef encoding
           Product: Axis
           Version: current (nightly)
          Platform: Other
        OS/Version: Other
            Status: NEW
          Severity: Normal
          Priority: Other
         Component: Serialization/Deserialization
        AssignedTo: axis-dev@xml.apache.org
        ReportedBy: dms@sosnoski.com


Turning off sendXsiTypes generates invalid SOAP output for RPC encoded multiRefs
(at least as I understand the spec) because no type information is supplied for
the multiRef and the type information is not otherwise available. Axis itself
fails on processing the resulting message, so turning off sendXsiTypes on both
client and server breaks if you're sending anything other than simple types.

Here's normal SOAP sample with sendXsiTypes=true:

  <multiRef id="id15" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="ns27:FlightBean" xmlns:ns27="http://flightsraw"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
   <arrivalTime xsi:type="xsd:string">3:54a</arrivalTime>
   <departureTime xsi:type="xsd:string">2:29a</departureTime>
   <number xsi:type="xsd:int">675</number>
   <carrier href="#id5"/>
  </multiRef>

Here's what it looks like with sendXsiTypes=false (no type on multiRef, so
cannot be deserialized):

  <multiRef id="id15" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
   <arrivalTime>3:54a</arrivalTime>
   <departureTime>2:29a</departureTime>
   <number>675</number>
   <carrier href="#id7"/>
  </multiRef>

Here's the result after the attached patch (type only on multiRef, complying
with SOAP spec while eliminating unnecessary types):

  <multiRef id="id15" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="ns27:FlightBean" xmlns:ns27="http://flightsraw"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
   <arrivalTime>3:54a</arrivalTime>
   <departureTime>2:29a</departureTime>
   <number>675</number>
   <carrier href="#id5"/>
  </multiRef>

Mime
View raw message