You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by Chris Pruett <ch...@ams.com> on 2004/04/27 22:10:15 UTC
Generating array items with xsi:type
I'm having trouble calling a webMethods web service because Axis is not
generating a SOAP message with typed array items. For example:
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<ns1:receiveSOAP2
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:ns1="http://leonardo/mpruett.webService">
<SimpleAPIDoc href="#id0"/>
</ns1:receiveSOAP2>
<multiRef id="id0" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="ns2:__SimpleAPIDoc"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:ns2="http://localhost/mpruett/webService/receiveSOAP2">
<DoubleList1 xsi:type="soapenc:Array"
soapenc:arrayType="xsd:double[1]">
<item>0.0</item>
</DoubleList1>
</multiRef>
</soapenv:Body>
</soapenv:Envelope>
The <item> in <DoubleList1> does not have a xsi:type, and thus webMethods
returns an error to me. However, change if I change the xml:
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<ns1:receiveSOAP2
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:ns1="http://leonardo/mpruett.webService">
<SimpleAPIDoc href="#id0"/>
</ns1:receiveSOAP2>
<multiRef id="id0" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="ns2:__SimpleAPIDoc"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:ns2="http://localhost/mpruett/webService/receiveSOAP2">
<DoubleList1 xsi:type="soapenc:Array"
soapenc:arrayType="xsd:double[1]">
<item xsi:type="xsd:double">0.0</item>
</DoubleList1>
</multiRef>
</soapenv:Body>
</soapenv:Envelope>
... and manually post it to the server, webMethods consumes it correctly.
It's not clear to me if this is a problem with Axis or webMethods. Can
anyone provide any insight as to why this might be happening? Is there a
way to get Axis to generate the SOAP message with typed array items?
Thanks,
Chris Pruett.