You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by babloosony <ba...@gmail.com> on 2005/04/02 07:56:11 UTC

.NET / AXIS Client not adding namespace to soap message elements

Hi All,

Say I have below soap message from the client (can be .NET or AXIS) :


-------------------------------------------------------------------------------------------------
<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>
      <getWeatherResponse xmlns="http://ws.ss.com/wsdl/ws/ab">
         <forecast >
            <zip>343434</zip>
            <city>Campbell</city>
            <state>CA</state>
            <date>April 11, 2003</date>
            <forecast>20 percent chance of rain.</forecast>
            <hi>0</hi>
            <low>0</low>
            <precip>0</precip>
            <parentForecast>
               <parentZip>520010</parentZip>
            </parentForecast>
         </forecast>
      </getWeatherResponse>
   </soapenv:Body>
</soapenv:Envelope>
-------------------------------------------------------------------------------------------------


Now, in the above soap message I want to have this namespace
declaration xmlns="http://ws.ss.com/schemas/ws/ab" for the forecast element
<forecast xmlns="http://ws.ss.com/schemas/ws/ab">. Even though I have
this 'forecast' element declared in
seperate schema definition with its own namespace why is that the
request soap message from AXIS or .NET does not
include namespace for this forecast element in its request soap message ?


Is there any configuration that I can in any of the below to achieve this :
1. .NET Framework 1.1
2. AXIS 1.2 RC2
3. in WSDL

Is there anything that I can configure in my WSDL before giving to
client's so that they can always send namespace for the soap message
elements. Please suggest. Below is my wsdl


-------------------------------------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>

<wsdl:definitions	xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 
					xmlns:impl="http://ws.ss.com/wsdl/ws/ab" 
					xmlns:intf="http://ws.ss.com/wsdl/ws/ab" 
					xmlns:apachesoap="http://xml.apache.org/xml-soap" 
					xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" 
					xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
					xmlns:tns1="http://ws.ss.com/schemas/ws/ab" 
					targetNamespace="http://ws.ss.com/wsdl/ws/ab">
	<wsdl:types>
		<schema targetNamespace="http://ws.ss.com/schemas/ws/ab" 
				elementFormDefault="qualified" 
				xmlns:tns="http://ws.ss.com/schemas/ws/ab" 
				xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
				xmlns="http://www.w3.org/2001/XMLSchema">
			<complexType name="parentForecast">
				<sequence>
					<element name="parentZip" nillable="true" type="xsd:string" /> 
				</sequence>
			</complexType>
			<element name="forecast">
				<complexType>
					<complexContent>
						<extension base="tns1:parentForecast">
							<sequence>
								<element minOccurs="0" name="zip" type="xsd:string"/>
								<element minOccurs="0" name="city" type="xsd:string"/>
								<element minOccurs="0" name="state" type="xsd:string"/>
								<element minOccurs="0" name="date" type="xsd:string"/>
								<element minOccurs="0" name="forecast" type="xsd:string"/>
							</sequence>
							<attribute use="required" name="hi" type="xsd:byte"/>
							<attribute use="required" name="low" type="xsd:byte"/>
							<attribute use="required" name="precip" type="xsd:byte"/>
						</extension>
					</complexContent>
				</complexType>
			</element>
		</schema>
		<schema xmlns="http://www.w3.org/2001/XMLSchema" 
				targetNamespace="http://ws.ss.com/wsdl/ws/ab" 
				elementFormDefault="qualified">
			<import namespace="http://ws.ss.com/schemas/ws/ab"/>
			<element name="getWeather">
				<complexType>
					<sequence>
						<element name="ziprq" type="xsd:string"/>
					</sequence>
				</complexType>
			</element>
			<element name="getWeatherResponse">
				<complexType>
					<sequence>
						<element ref="tns1:forecast"/>
					</sequence>
				</complexType>
			</element>
		</schema>
	</wsdl:types>
	<wsdl:message name="getWeatherRequest">
		<wsdl:part name="parameters" element="impl:getWeather"/>
	</wsdl:message>
	<wsdl:message name="getWeatherResponse">
		<wsdl:part name="parameters" element="impl:getWeatherResponse"/>
	</wsdl:message>
	<wsdl:portType name="SparePartPriceSessionInterface">
		<wsdl:operation name="getWeather">
			<wsdl:input name="getWeatherRequest" message="impl:getWeatherRequest"/>
			<wsdl:output name="getWeatherResponse" message="impl:getWeatherResponse"/>
		</wsdl:operation>
	</wsdl:portType>
	<wsdl:binding name="SparePartPriceSessionBinding"
type="impl:SparePartPriceSessionInterface">
		<wsdlsoap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
		<wsdl:operation name="getWeather">
			<wsdlsoap:operation/>
			<wsdl:input>
				<wsdlsoap:body use="literal"/>
			</wsdl:input>
			<wsdl:output>
				<wsdlsoap:body use="literal"/>
			</wsdl:output>
		</wsdl:operation>
	</wsdl:binding>
	<wsdl:service name="SparePartPriceSessionInterfaceService">
		<wsdl:port name="SparePartPriceSessionBean"
binding="impl:SparePartPriceSessionBinding">
			<wsdlsoap:address
location="http://localhost:8080/axis/services/SparePartPriceSession"/>
		</wsdl:port>
	</wsdl:service>
</wsdl:definitions>
-------------------------------------------------------------------------------------------------




Thanks & Regards,
Kumar.

Re: .NET / AXIS Client not adding namespace to soap message elements

Posted by Anne Thomas Manes <at...@gmail.com>.
And according to the WSDL, "forecast" should be qualified using the
"http://ws.ss.com/schemas/ws/ab" namespace. So the service is not
generating the correct response.

- Anne

On Apr 2, 2005 2:48 AM, HaoRan Zheng <hr...@gmail.com> wrote:
> The soap message provided in your letter seems not a soap request from
> any client, but a soap response from the server. Right?
> 
> Regards,
> HaoRan Zheng
> 
> On Apr 2, 2005 1:56 PM, babloosony <ba...@gmail.com> wrote:
> > Hi All,
> >
> > Say I have below soap message from the client (can be .NET or AXIS) :
> >
> > -------------------------------------------------------------------------------------------------
> > <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>
> >      <getWeatherResponse xmlns="http://ws.ss.com/wsdl/ws/ab">
> >         <forecast >
> >            <zip>343434</zip>
> >            <city>Campbell</city>
> >            <state>CA</state>
> >            <date>April 11, 2003</date>
> >            <forecast>20 percent chance of rain.</forecast>
> >            <hi>0</hi>
> >            <low>0</low>
> >            <precip>0</precip>
> >            <parentForecast>
> >               <parentZip>520010</parentZip>
> >            </parentForecast>
> >         </forecast>
> >      </getWeatherResponse>
> >   </soapenv:Body>
> > </soapenv:Envelope>
> > -------------------------------------------------------------------------------------------------
> >
> > Now, in the above soap message I want to have this namespace
> > declaration xmlns="http://ws.ss.com/schemas/ws/ab" for the forecast element
> > <forecast xmlns="http://ws.ss.com/schemas/ws/ab">. Even though I have
> > this 'forecast' element declared in
> > seperate schema definition with its own namespace why is that the
> > request soap message from AXIS or .NET does not
> > include namespace for this forecast element in its request soap message ?
> >
> > Is there any configuration that I can in any of the below to achieve this :
> > 1. .NET Framework 1.1
> > 2. AXIS 1.2 RC2
> > 3. in WSDL
> >
> > Is there anything that I can configure in my WSDL before giving to
> > client's so that they can always send namespace for the soap message
> > elements. Please suggest. Below is my wsdl
> >
> > -------------------------------------------------------------------------------------------------
> > <?xml version="1.0" encoding="UTF-8"?>
> >
> > <wsdl:definitions       xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
> >                                        xmlns:impl="http://ws.ss.com/wsdl/ws/ab"
> >                                        xmlns:intf="http://ws.ss.com/wsdl/ws/ab"
> >                                        xmlns:apachesoap="http://xml.apache.org/xml-soap"
> >                                        xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
> >                                        xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> >                                        xmlns:tns1="http://ws.ss.com/schemas/ws/ab"
> >                                        targetNamespace="http://ws.ss.com/wsdl/ws/ab">
> >        <wsdl:types>
> >                <schema targetNamespace="http://ws.ss.com/schemas/ws/ab"
> >                                elementFormDefault="qualified"
> >                                xmlns:tns="http://ws.ss.com/schemas/ws/ab"
> >                                xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> >                                xmlns="http://www.w3.org/2001/XMLSchema">
> >                        <complexType name="parentForecast">
> >                                <sequence>
> >                                        <element name="parentZip" nillable="true" type="xsd:string" />
> >                                </sequence>
> >                        </complexType>
> >                        <element name="forecast">
> >                                <complexType>
> >                                        <complexContent>
> >                                                <extension base="tns1:parentForecast">
> >                                                        <sequence>
> >                                                                <element minOccurs="0" name="zip" type="xsd:string"/>
> >                                                                <element minOccurs="0" name="city" type="xsd:string"/>
> >                                                                <element minOccurs="0" name="state" type="xsd:string"/>
> >                                                                <element minOccurs="0" name="date" type="xsd:string"/>
> >                                                                <element minOccurs="0" name="forecast" type="xsd:string"/>
> >                                                        </sequence>
> >                                                        <attribute use="required" name="hi" type="xsd:byte"/>
> >                                                        <attribute use="required" name="low" type="xsd:byte"/>
> >                                                        <attribute use="required" name="precip" type="xsd:byte"/>
> >                                                </extension>
> >                                        </complexContent>
> >                                </complexType>
> >                        </element>
> >                </schema>
> >                <schema xmlns="http://www.w3.org/2001/XMLSchema"
> >                                targetNamespace="http://ws.ss.com/wsdl/ws/ab"
> >                                elementFormDefault="qualified">
> >                        <import namespace="http://ws.ss.com/schemas/ws/ab"/>
> >                        <element name="getWeather">
> >                                <complexType>
> >                                        <sequence>
> >                                                <element name="ziprq" type="xsd:string"/>
> >                                        </sequence>
> >                                </complexType>
> >                        </element>
> >                        <element name="getWeatherResponse">
> >                                <complexType>
> >                                        <sequence>
> >                                                <element ref="tns1:forecast"/>
> >                                        </sequence>
> >                                </complexType>
> >                        </element>
> >                </schema>
> >        </wsdl:types>
> >        <wsdl:message name="getWeatherRequest">
> >                <wsdl:part name="parameters" element="impl:getWeather"/>
> >        </wsdl:message>
> >        <wsdl:message name="getWeatherResponse">
> >                <wsdl:part name="parameters" element="impl:getWeatherResponse"/>
> >        </wsdl:message>
> >        <wsdl:portType name="SparePartPriceSessionInterface">
> >                <wsdl:operation name="getWeather">
> >                        <wsdl:input name="getWeatherRequest" message="impl:getWeatherRequest"/>
> >                        <wsdl:output name="getWeatherResponse" message="impl:getWeatherResponse"/>
> >                </wsdl:operation>
> >        </wsdl:portType>
> >        <wsdl:binding name="SparePartPriceSessionBinding"
> > type="impl:SparePartPriceSessionInterface">
> >                <wsdlsoap:binding style="document"
> > transport="http://schemas.xmlsoap.org/soap/http"/>
> >                <wsdl:operation name="getWeather">
> >                        <wsdlsoap:operation/>
> >                        <wsdl:input>
> >                                <wsdlsoap:body use="literal"/>
> >                        </wsdl:input>
> >                        <wsdl:output>
> >                                <wsdlsoap:body use="literal"/>
> >                        </wsdl:output>
> >                </wsdl:operation>
> >        </wsdl:binding>
> >        <wsdl:service name="SparePartPriceSessionInterfaceService">
> >                <wsdl:port name="SparePartPriceSessionBean"
> > binding="impl:SparePartPriceSessionBinding">
> >                        <wsdlsoap:address
> > location="http://localhost:8080/axis/services/SparePartPriceSession"/>
> >                </wsdl:port>
> >        </wsdl:service>
> > </wsdl:definitions>
> > -------------------------------------------------------------------------------------------------
> >
> > Thanks & Regards,
> > Kumar.
> >
>

Re: .NET / AXIS Client not adding namespace to soap message elements

Posted by HaoRan Zheng <hr...@gmail.com>.
The soap message provided in your letter seems not a soap request from
any client, but a soap response from the server. Right?

Regards,
HaoRan Zheng

On Apr 2, 2005 1:56 PM, babloosony <ba...@gmail.com> wrote:
> Hi All,
> 
> Say I have below soap message from the client (can be .NET or AXIS) :
> 
> -------------------------------------------------------------------------------------------------
> <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>
>      <getWeatherResponse xmlns="http://ws.ss.com/wsdl/ws/ab">
>         <forecast >
>            <zip>343434</zip>
>            <city>Campbell</city>
>            <state>CA</state>
>            <date>April 11, 2003</date>
>            <forecast>20 percent chance of rain.</forecast>
>            <hi>0</hi>
>            <low>0</low>
>            <precip>0</precip>
>            <parentForecast>
>               <parentZip>520010</parentZip>
>            </parentForecast>
>         </forecast>
>      </getWeatherResponse>
>   </soapenv:Body>
> </soapenv:Envelope>
> -------------------------------------------------------------------------------------------------
> 
> Now, in the above soap message I want to have this namespace
> declaration xmlns="http://ws.ss.com/schemas/ws/ab" for the forecast element
> <forecast xmlns="http://ws.ss.com/schemas/ws/ab">. Even though I have
> this 'forecast' element declared in
> seperate schema definition with its own namespace why is that the
> request soap message from AXIS or .NET does not
> include namespace for this forecast element in its request soap message ?
> 
> Is there any configuration that I can in any of the below to achieve this :
> 1. .NET Framework 1.1
> 2. AXIS 1.2 RC2
> 3. in WSDL
> 
> Is there anything that I can configure in my WSDL before giving to
> client's so that they can always send namespace for the soap message
> elements. Please suggest. Below is my wsdl
> 
> -------------------------------------------------------------------------------------------------
> <?xml version="1.0" encoding="UTF-8"?>
> 
> <wsdl:definitions       xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
>                                        xmlns:impl="http://ws.ss.com/wsdl/ws/ab"
>                                        xmlns:intf="http://ws.ss.com/wsdl/ws/ab"
>                                        xmlns:apachesoap="http://xml.apache.org/xml-soap"
>                                        xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
>                                        xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>                                        xmlns:tns1="http://ws.ss.com/schemas/ws/ab"
>                                        targetNamespace="http://ws.ss.com/wsdl/ws/ab">
>        <wsdl:types>
>                <schema targetNamespace="http://ws.ss.com/schemas/ws/ab"
>                                elementFormDefault="qualified"
>                                xmlns:tns="http://ws.ss.com/schemas/ws/ab"
>                                xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>                                xmlns="http://www.w3.org/2001/XMLSchema">
>                        <complexType name="parentForecast">
>                                <sequence>
>                                        <element name="parentZip" nillable="true" type="xsd:string" />
>                                </sequence>
>                        </complexType>
>                        <element name="forecast">
>                                <complexType>
>                                        <complexContent>
>                                                <extension base="tns1:parentForecast">
>                                                        <sequence>
>                                                                <element minOccurs="0" name="zip" type="xsd:string"/>
>                                                                <element minOccurs="0" name="city" type="xsd:string"/>
>                                                                <element minOccurs="0" name="state" type="xsd:string"/>
>                                                                <element minOccurs="0" name="date" type="xsd:string"/>
>                                                                <element minOccurs="0" name="forecast" type="xsd:string"/>
>                                                        </sequence>
>                                                        <attribute use="required" name="hi" type="xsd:byte"/>
>                                                        <attribute use="required" name="low" type="xsd:byte"/>
>                                                        <attribute use="required" name="precip" type="xsd:byte"/>
>                                                </extension>
>                                        </complexContent>
>                                </complexType>
>                        </element>
>                </schema>
>                <schema xmlns="http://www.w3.org/2001/XMLSchema"
>                                targetNamespace="http://ws.ss.com/wsdl/ws/ab"
>                                elementFormDefault="qualified">
>                        <import namespace="http://ws.ss.com/schemas/ws/ab"/>
>                        <element name="getWeather">
>                                <complexType>
>                                        <sequence>
>                                                <element name="ziprq" type="xsd:string"/>
>                                        </sequence>
>                                </complexType>
>                        </element>
>                        <element name="getWeatherResponse">
>                                <complexType>
>                                        <sequence>
>                                                <element ref="tns1:forecast"/>
>                                        </sequence>
>                                </complexType>
>                        </element>
>                </schema>
>        </wsdl:types>
>        <wsdl:message name="getWeatherRequest">
>                <wsdl:part name="parameters" element="impl:getWeather"/>
>        </wsdl:message>
>        <wsdl:message name="getWeatherResponse">
>                <wsdl:part name="parameters" element="impl:getWeatherResponse"/>
>        </wsdl:message>
>        <wsdl:portType name="SparePartPriceSessionInterface">
>                <wsdl:operation name="getWeather">
>                        <wsdl:input name="getWeatherRequest" message="impl:getWeatherRequest"/>
>                        <wsdl:output name="getWeatherResponse" message="impl:getWeatherResponse"/>
>                </wsdl:operation>
>        </wsdl:portType>
>        <wsdl:binding name="SparePartPriceSessionBinding"
> type="impl:SparePartPriceSessionInterface">
>                <wsdlsoap:binding style="document"
> transport="http://schemas.xmlsoap.org/soap/http"/>
>                <wsdl:operation name="getWeather">
>                        <wsdlsoap:operation/>
>                        <wsdl:input>
>                                <wsdlsoap:body use="literal"/>
>                        </wsdl:input>
>                        <wsdl:output>
>                                <wsdlsoap:body use="literal"/>
>                        </wsdl:output>
>                </wsdl:operation>
>        </wsdl:binding>
>        <wsdl:service name="SparePartPriceSessionInterfaceService">
>                <wsdl:port name="SparePartPriceSessionBean"
> binding="impl:SparePartPriceSessionBinding">
>                        <wsdlsoap:address
> location="http://localhost:8080/axis/services/SparePartPriceSession"/>
>                </wsdl:port>
>        </wsdl:service>
> </wsdl:definitions>
> -------------------------------------------------------------------------------------------------
> 
> Thanks & Regards,
> Kumar.
>