Hi there.

I can't actually remember, so this is a best shot, Ok?

<name xsi:type="soapenc:string">IfcSpace</name>

WS-I Basic Profile prohibits "soapenc", used the schema equivalent type
instead.


----- Original Message ----- 
From: "BLIS Webmaster (Patrick Houbaux)" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Wednesday, December 22, 2004 12:50 PM
Subject: Axis 1.2RC2: multiref serialization of xsd simple types /
interoperability with .NET


> Hi all,
>
> I have a RPC web service deployed with Axis 1.2RC2.
> For performance issue some of my methods are actually sending the response
data in compressed attachments to the clients.
>
> I did set the server to use multiref because the data model I'm sending is
a graph and to avoid stack overflow errors.
>
> Everything is working fine for java clients.
>
> Almost everything is working fine for .NET clients (extraction of
attachments, decompression) except that I'm currently struggling with the
deserialization in .NET of the attached data especially for the simple XML
types.
>
> I have no problem for mapping my complex types to the generated proxy
assembly types in .NET but if one of the element in my complex types have a
value of an XML simple type, it is ignored by the SOAP deserializer of .NET.
>
> Here is a snippet of what axis is sending (just pasted the relevant part
of the message that causes problem):
> /------------------------
> [...]
> <ns2:SABLEThermSpace xmlns:xsd="http://www.w3.org/2001/XMLSchema";
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
xsi:type="ns2:SABLEThermSpace"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/";
xmlns:ns2="urn:datatypes.rpc.thermal.dapi.webservices.sable.blis_project.org
" id="id0" soapenc:root="0">
> <GUID xsi:type="soapenc:string">35skClkL5BfP3UzE0csesq</GUID>
> [..]
> <heatingDesignTemperature href="#id7"/>
> <metadatas href="#id8"/>
> [..]
> </ns2:SABLEThermSpace>
> [...]
> <multiRef id="id8" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
xsi:type="ns3:SABLEInstanceMetaDatas"
xmlns:ns3="urn:datatypes.rpc.common.dapi.webservices.sable.blis_project.org"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/";>
> <dateCreated href="#id14"/>
> <dateModified href="#id15"/>
> <description xsi:type="soapenc:string">N/A</description>
> <locked href="#id16"/>
> <modelServerInstanceURL
xsi:type="soapenc:string">http://ems.eurostep.fi:8080/EMS/7240688</modelServ
erInstanceURL>
> <name xsi:type="soapenc:string">IfcSpace</name>
> <owner xsi:type="soapenc:string">eurostepper</owner>
> <previousRevision xsi:type="soapenc:string">3</previousRevision>
> <revision xsi:type="soapenc:string">4</revision>
> <status xsi:type="soapenc:string">not_defined</status>
> </multiRef>
> [...]
> <multiRef id="id7" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
xsi:type="xsd:double"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/";>1000.0</multiRef>
> [...]
> <multiRef id="id15" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
xsi:type="xsd:long"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/";>1103559114445</mul
tiRef>
> <multiRef id="id14" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
xsi:type="xsd:long"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/";>1103559114445</mul
tiRef>
> <multiRef id="id16" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
xsi:type="xsd:boolean"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/";>false</multiRef>
> [...]
> /------------------------
>
>
> The deserialization of my object is going fine (no errors) except for the
mutiref #id7, #id14, #id15 and #id16: they don't get deserialized while the
deserialization of the multiref #id8 is ok.
>
> Is there any specific reasons why Axis 1.2RC2 is sending multiref for XML
simple types while it is sending non multiref for the soapenc:string type
for instance? Does it make sense?
>
> I tested that if I replace (for instance) the multiref for the XML simple
types by non multiref, I would get the .NET deserialization working.
>
> i.e.:
> <heatingDesignTemperature href="#id7"/>
> replaced by
> <heatingDesignTemperature
xsi:type="xsd:double">1000.0</heatingDesignTemperature>
>
> Any idea? Is there a setting I need to do on the server side to tell axis
to not send multiref for XML simple types even if I set the server parameter
sendMultiRefs to true?
>
> Regards,
> Patrick.
>

Reply via email to