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 Harish Prabandham <ha...@onebox.com> on 2002/09/17 21:56:46 UTC
Axis generated SOAP question.
Hi,
I noticed that the SOAP generated by Axis clients is
different from what I expected. Whenever, the
request/reply messages contain a complexType as a
parameter then the generated SOAP seems to use
<multiRef> and the parameters are seems to be
refer to the multiRef element using href.
For example: look at the soap protocol exchanged in the
samples/addr example is shown below. Is this
expected behavior?
Is there a document/email-thread/spec. that
explains why multiRefs elements are used instead of
simply inlining the parameter elements?
Thx.
Harish
POST /axis/services/AddressBook HTTP/1.0
Content-Type: text/xml; charset=utf-8
Accept: application/soap+xml, application/dime, multipart/related,
text/*
User-Agent: Axis/beta3
Host: localhost
Cache-Control: no-cache
Pragma: no-cache
SOAPAction: ""
Content-Length: 1627
<?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:addEntry soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:ns1="urn:AddressFetcher2">
<name xsi:type="ns2:string" xmlns:ns2="http://www.w3.org/1999/XMLSchema">Purdue
Boilermaker</name>
<address href="#id0"/>
</ns1:addEntry>
<multiRef id="id0" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="ns3:address" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:ns3="urn:AddressFetcher2">
<streetNum xsi:type="xsd:int">1</streetNum>
<streetName xsi:type="xsd:string">University Drive</streetName>
<city xsi:type="xsd:string">West Lafayette</city>
<state href="#id1"/>
<zip xsi:type="xsd:int">47907</zip>
<phoneNumber href="#id2"/>
</multiRef>
<multiRef id="id1" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="ns4:stateType" xmlns:ns4="urn:AddressFetcher2"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">IN</multiRef>
<multiRef id="id2" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="ns5:phone" xmlns:ns5="urn:AddressFetcher2" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<areaCode xsi:type="xsd:int">765</areaCode>
<exchange xsi:type="xsd:string">494</exchange>
<number xsi:type="xsd:string">4900</number>
</multiRef>
</soapenv:Body>
</soapenv:Envelope>
HTTP/1.0 200 OK
Content-Type: text/xml; charset=utf-8
Set-Cookie: 1
Set-Cookie2: 1
<?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:addEntryResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:ns1="urn:AddressFetcher2"/>
</soapenv:Body>
</soapenv:Envelope>
Re: Axis generated SOAP question.
Posted by Ricky Ho <ri...@cisco.com>.
Use document/literal encoding
At 12:56 PM 9/17/2002 -0700, you wrote:
>Hi,
>
>I noticed that the SOAP generated by Axis clients is
>different from what I expected. Whenever, the
>request/reply messages contain a complexType as a
>parameter then the generated SOAP seems to use
><multiRef> and the parameters are seems to be
>refer to the multiRef element using href.
>
>For example: look at the soap protocol exchanged in the
>
>samples/addr example is shown below. Is this
>expected behavior?
>
>Is there a document/email-thread/spec. that
>explains why multiRefs elements are used instead of
>simply inlining the parameter elements?
>
>
>Thx.
>
>Harish
>
>POST /axis/services/AddressBook HTTP/1.0
>Content-Type: text/xml; charset=utf-8
>Accept: application/soap+xml, application/dime, multipart/related,
>text/*
>User-Agent: Axis/beta3
>Host: localhost
>Cache-Control: no-cache
>Pragma: no-cache
>SOAPAction: ""
>Content-Length: 1627
>
><?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:addEntry
> soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
>xmlns:ns1="urn:AddressFetcher2">
> <name xsi:type="ns2:string"
> xmlns:ns2="http://www.w3.org/1999/XMLSchema">Purdue
>Boilermaker</name>
> <address href="#id0"/>
> </ns1:addEntry>
> <multiRef id="id0" soapenc:root="0"
> soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
>xsi:type="ns3:address"
>xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
>xmlns:ns3="urn:AddressFetcher2">
> <streetNum xsi:type="xsd:int">1</streetNum>
> <streetName xsi:type="xsd:string">University Drive</streetName>
> <city xsi:type="xsd:string">West Lafayette</city>
> <state href="#id1"/>
> <zip xsi:type="xsd:int">47907</zip>
> <phoneNumber href="#id2"/>
> </multiRef>
> <multiRef id="id1" soapenc:root="0"
> soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
>xsi:type="ns4:stateType" xmlns:ns4="urn:AddressFetcher2"
>xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">IN</multiRef>
> <multiRef id="id2" soapenc:root="0"
> soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
>xsi:type="ns5:phone" xmlns:ns5="urn:AddressFetcher2"
>xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
> <areaCode xsi:type="xsd:int">765</areaCode>
> <exchange xsi:type="xsd:string">494</exchange>
> <number xsi:type="xsd:string">4900</number>
> </multiRef>
> </soapenv:Body>
></soapenv:Envelope>
>
>
>HTTP/1.0 200 OK
>Content-Type: text/xml; charset=utf-8
>Set-Cookie: 1
>Set-Cookie2: 1
>
><?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:addEntryResponse
> soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
>xmlns:ns1="urn:AddressFetcher2"/>
> </soapenv:Body>
></soapenv:Envelope>
>
>
>