I haven't done much with Flex's WebService stuff but one of these might
work...
<mx:WebService
id="contextRegistryService"
showBusyCursor="true"
wsdl="{_webServiceBaseUrl}runtime/ContextRegistryService?WSDL"
useProxy="false" >
<mx:operation name="register">
<mx:request format="xml">
<ns1:register
xmlns:ns1="http://services.foo.bar.com/
<http://services.foo.bar.com/> "
xmlns:ns2="http://context.foo.bar.com/
<http://context.foo.bar.com/> "
xmlns:ns3="http://profiles.foo.bar.com/
<http://profiles.foo.bar.com/> ">
<context>
<ns2:Profiles
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance
<http://www.w3.org/2001/XMLSchema-instance> "
xsi:type="ns3:ContentTransferProfile"
geolocation="{_geoLocation}"
transferMode="BASE64"/>
</context>
</ns1:register>
<ns3:ContentTransferProfile/>
</mx:request>
</mx:operation>
</mx:WebService>
or...
<mx:WebService
id="contextRegistryService"
showBusyCursor="true"
wsdl="{_webServiceBaseUrl}runtime/ContextRegistryService?WSDL"
useProxy="false" >
<mx:operation name="register">
<mx:request format="xml">
<ns1:register
xmlns:ns1="http://services.foo.bar.com/
<http://services.foo.bar.com/> "
xmlns:ns2="http://context.foo.bar.com/
<http://context.foo.bar.com/> "
xmlns:ns3="http://profiles.foo.bar.com/
<http://profiles.foo.bar.com/> ">
<context>
<ns2:Profiles
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance
<http://www.w3.org/2001/XMLSchema-instance> "
xsi:type="ns3:ContentTransferProfile"
xmlns:ns3="http://profiles.foo.bar.com/
<http://profiles.foo.bar.com/> "
geolocation="{_geoLocation}"
transferMode="BASE64"/>
</context>
</ns1:register>
</mx:request>
</mx:operation>
</mx:WebService>
--- In [email protected], "Robert Csiki" <[EMAIL PROTECTED]>
wrote:
>
>
> Hello,
>
> I found the Flex3 WebService does ignore the namespaces defined and
used
> by the xsi:type constructs when the SOAP message gets built.
>
> Example:
>
> <mx:WebService
> id="contextRegistryService"
> showBusyCursor="true"
>
wsdl="{_webServiceBaseUrl}runtime/ContextRegistryService?WSDL"
> useProxy="false" >
> <mx:operation name="register">
> <mx:request format="xml">
> <ns1:register
> xmlns:ns1="http://services.foo.bar.com/
> <http://services.foo.bar.com/> "
> xmlns:ns2="http://context.foo.bar.com/
> <http://context.foo.bar.com/> "
> xmlns:ns3="http://profiles.foo.bar.com/
> <http://profiles.foo.bar.com/> ">
> <context>
> <ns2:Profiles
>
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance
> <http://www.w3.org/2001/XMLSchema-instance> "
> xsi:type="ns3:ContentTransferProfile"
> geolocation="{_geoLocation}"
> transferMode="BASE64"/>
> </context>
> </ns1:register>
> </mx:request>
> </mx:operation>
> </mx:WebService>
>
>
> The SOAP that gets generated is incorrect:
>
> <SOAP-ENV:Envelope
> xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/
> <http://schemas.xmlsoap.org/soap/envelope/> "
> xmlns:xs="http://www.w3.org/2001/XMLSchema
> <http://www.w3.org/2001/XMLSchema> "
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance
> <http://www.w3.org/2001/XMLSchema-instance> ">
> <SOAP-ENV:Body>
> <ns1:register xmlns:ns1="http://services.foo.bar.com
> <http://services.foo.bar.com> ">
> <context>
> <ns2:Profiles
> geolocation="Toronto"
> xsi:type="ns3:ContentTransferProfile"
> transferMode="BASE64"
> xmlns:ns2="http://context.foo.bar.com/
> <http://context.foo.bar.com/> " />
> </context>
> </ns1:register>
> </SOAP-ENV:Body>
> </SOAP-ENV:Envelope>
>
> The ns3 namespace is not there in the SOAP message, hence the Web
> Service server rejects this request as being invalid (prefix ns3 is
not
> bound to a namespace).
>
> Any ideas how to make this work?
>
> Thanks, Robert
>