The schema has:

<xs:schema attributeFormDefault="unqualified"
   elementFormDefault="unqualified"

Thus, the "hello" child element MUST be unqualified.  That's per the schema 
rules.   If it's sent qualified, then it doesn't match the schema.

Dan




On Monday 15 December 2008 9:57:19 am Christian Landbo Frederiksen wrote:
> I am using CXF 2.1
>
>
>
> I expose a java class/method like this
>
>
>
> @WebService(name="EchoService",
> targetNamespace="http://echo.dk/2008/11/16";)
>
> public interface EchoService {
>
>
>
>             @WebMethod
>
>             public String echo(@WebParam(name = "hello") String hello)
>
>
>
>
>
> This turns into this wsdl:
>
>
>
> <xs:schema attributeFormDefault="unqualified"
> elementFormDefault="unqualified"
> targetNamespace="http://echo.dk/2008/11/16";
> xmlns="http://echo.dk/2008/11/16";
> xmlns:xs="http://www.w3.org/2001/XMLSchema";>
>
>       <xs:element name="echo" type="echo"/>
>
>       <xs:complexType name="echo">
>
>         <xs:sequence>
>
>           <xs:element minOccurs="0" name="hello" type="xs:string"/>
>
>         </xs:sequence>
>
>       </xs:complexType>
>
>       <xs:element name="echoResponse" type="echoResponse"/>
>
>       <xs:complexType name="echoResponse">
>
>         <xs:sequence>
>
>           <xs:element minOccurs="0" name="return" type="xs:string"/>
>
>         </xs:sequence>
>
>       </xs:complexType>
>
>     </xs:schema>
>
>
>
>
>
> Can successfully be called in SOAP-UI:
>
>
>
> <soapenv:Envelope
> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
> xmlns:ns="http://optagelse.dk/2008/11/16";>
>
>    <soapenv:Header/>
>
>    <soapenv:Body>
>
>       <ns:echo>
>
>                                             <hello>Champ</hello>
>
>       </ns:echo>
>
>    </soapenv:Body>
>
> </soapenv:Envelope>
>
>
>
> But another client generates this:
>
>
>
> <soapenv:Envelope
> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"; >
>
>    <soapenv:Header/>
>
>    <soapenv:Body>
>
>       <echo xmlns="http://optagelse.dk/2008/11/16";>
>
>                                             <hello>Champ</hello>
>
>       </echo>
>
>    </soapenv:Body>
>
> </soapenv:Envelope>
>
>
>
> And this results in the param being null in the method
>
>
>
> The problem is that the param only works when it is given without
> namespace.
>
> ns:hello gives the same result in the first example.
>
>
>
> Is this not a bug? The schema in the wsdl has targetNamespace set so you
> would assume that the client namespace on the param would work.
>
>
>
> /Chr



-- 
Daniel Kulp
dk...@apache.org
http://dankulp.com/blog

Reply via email to