Can you post your WSDL/schema?   It sounds like you have 
elementFormDefault="qualified" in there.   By default, if you have 
elementFormDefault="unqualified", it should generate the Read element  in the 
right namespace and all the child elements unqualified which is what you are 
describing.

Dan



On Thursday 27 January 2011 1:20:30 pm Taylor Jones (tayjones) wrote:
> Hi everyone, I have a bit of a weird question here. It may be trivial to
> a more experienced user though, I'm kind of new to CXF and webservices
> in general.
> 
> I'm working with CXF to generate Java classes from WSDLs, with which I
> interface with a commercial product's exposed SOAP services. The problem
> is, the product's XML implementation is sort of funky and I kind of need
> CXF to break a few rules to marshal the XML for the SOAP service.
> Basically, the form of the soap request expected by the product is this:
> 
> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/";
>       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
> xmlns:xsd="http://www.w3.org/2001/XMLSchema";>
>       <soap:Header>
>               <Auth xmlns="namespace1">
> 
> <SessionID>5000156__171120a:10a241ff830:-7f711143139816999</SessionID>
>               </Auth>
>       </soap:Header>
>       <soap:Body>
>               <Read xmlns="namespace1">
>                       <DataBus
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
> 
> xsi:noNamespaceSchemaLocation="../xsd/read.xsd" xmlns="">
>                               <Header version="12.0.0.5028" />
>                               <Query>
>                                       <Filter name="subject"
> criteria="EQUALS">some filter text</Filter>
>                               </Query>
>                       </DataBus>
>               </Read>
>       </soap:Body>
> </soap:Envelope>
> 
> I've written a WSDL such that everything CXF generates is fine, verified
> this with Wireshark, except for the namespace of the <DataBus> tag. I
> don't think it's possible to write a WSDL or schema in such a way that
> CXF generates a DataBus class in a blank namespace (maybe it is, I'd
> love to be proven wrong there). So, I tried writing an interceptor to do
> this manually on outgoing requests, but after the <DataBus> tag is
> modified to have a blank namespace the child tags are suddenly generated
> with xmlns="namespace1" attribute. It doesn't seem that there is a place
> in the interceptor chain to prevent this change from happening, so I'm
> pretty much out of ideas. The commercial product I'm using will not
> accept these tags unless the namespaces are "correct"; that is to say,
> what it expects to receive, not what is standard. Would anyone here be
> able to help or point me in a good direction to accomplish this?
> 
> Taylor Jones

-- 
Daniel Kulp
[email protected]
http://dankulp.com/blog

Reply via email to