For jaxb, I think setting soap.env.ns.map won't help, as this property
doesn't influence how its marshaller is set up.

To influence jaxb's namespace handling, you can set the jaxb
marshaller's property com.sun.xml.bind.namespacePrefixMapper with your
own prefix mapper. But this requires writing a code. So I think we
should provide a simpler way. cxf's jaxb binding configuration already
provides the namespace mapping option that sets the above prefix
mapper. However, this mapper currently only influences the namespace
prefix mapping itself. So we should add an option to configure the
contextual namespace mapping so that one can specify the namespace
declarations inherited from outside. I'll take a look.


2013/9/15 Andrei Shakirin <[email protected]>:
> Hi Gaurav,
>
> I guess that soap.env.ns.map was supported in later CXF releases.
> Could you try 2.7.X?
>
> Regards,
> Andrei.
>
>> -----Original Message-----
>> From: Gaurav Chandna [mailto:[email protected]]
>> Sent: Dienstag, 10. September 2013 09:19
>> To: [email protected]
>> Subject: Issue in Prefix management of namespace in cxf-2.5.10
>>
>> Hi ,
>>
>> I am using cxf-2.5.10 and using xmlbeans for generating java objects.
>> I am facing following issue w.r.t. prefix management, the prefixes declared 
>> in
>> envelope or in soap body section are not being used and entire namespace is
>> getting copied for all the elements:
>>
>> *Expected Result*:
>> <SOAP-ENV:Envelope
>> xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/";
>> xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/";
>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>> xmlns:xsd="http://www.w3.org/2001/XMLSchema";
>> xmlns:esl="http://www.cvscaremark.com/esl/entities/1_0";
>> xmlns:eldm="http://www.cvscaremark.com/esl/eldm/entities/1_0";>
>> <SOAP-ENV:Body>
>> <p:PatientDURProfileRequest
>> xmlns:p="http://www.cvscaremark.com/esl/isp/messages/1_0";>
>>   <esl:AppMsgID>******</esl:AppMsgID>
>>   <esl:Version>1.0</esl:Version>
>>   <esl:MsgDateTimestamp>*******</esl:MsgDateTimestamp>
>>   <p:sourceSystemID>
>>     <eldm:sourceSystemName>*******</eldm:sourceSystemName>
>>     <eldm:sourceSystemKey KeyName="PatientIdentifier">
>>       <eldm:KeyValue>*******</eldm:KeyValue>
>>     </eldm:sourceSystemKey>
>>     <eldm:effectiveDate>*******</eldm:effectiveDate>
>>     <eldm:termDate>*******</eldm:termDate>
>>   </p:sourceSystemID>
>>   <p:startDate>*******</p:startDate>
>>   <p:endDate>*******</p:endDate>
>>   <p:lineOfBusinessCode>*******</p:lineOfBusinessCode>
>> </p:PatientDURProfileRequest>
>> </SOAP-ENV:Body>
>> </SOAP-ENV:Envelope>
>>
>>
>>
>> *Actual Result:*
>> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/";
>> xmlns:ns3="http://www.cvscaremark.com/esl/entities/1_0";
>>  xmlns:ns2="http://www.cvscaremark.com/esl/isp/messages/1_0";>
>> <soap:Body>
>>    <PatientDURProfileRequest
>> xmlns="http://www.cvscaremark.com/esl/isp/messages/1_0";>
>>    <AppMsgID
>> xmlns="http://www.cvscaremark.com/esl/entities/1_0";>*****</AppMsgID
>> >
>>     <MsgDateTimestamp
>> xmlns="http://www.cvscaremark.com/esl/entities/1_0";>*****</MsgDateT
>> imestamp><sourceSystemID>
>>       <sourceSystemName
>> xmlns="http://www.cvscaremark.com/esl/eldm/entities/1_0";>******</so
>> urceSystemName>
>> <sourceSystemKey
>> xmlns="http://www.cvscaremark.com/esl/eldm/entities/1_0";
>> PatientIdentifier">
>>       <KeyValue>******</KeyValue>
>>                   </sourceSystemKey>
>>                  </sourceSystemID>
>>               </PatientDURProfileRequest>
>>             </soap:Body>
>> </soap:Envelope>
>>
>>
>>
>> I have tried following options to resolve the same but no success has been
>> acheived:
>> 1. XMLOptions - not working
>> 2. Adding namespace in "soap.env.ns.map" using cxf.xml and also using
>> interceptor
>>
>> Please provide the solution, if anyone has faced the sae issue
>>
>>
>>
>> --
>> View this message in context: http://cxf.547215.n5.nabble.com/Issue-in-
>> Prefix-management-of-namespace-in-cxf-2-5-10-tp5733766.html
>> Sent from the cxf-user mailing list archive at Nabble.com.

Reply via email to