In this case - yes, but in your simpler example it was possible :-)
I guess we may need something similar for the in/out namespace transform to what we have in the 'drop' mode, where only a specific element and all of children can be dropped

Cheers, Sergey
On 06/10/15 17:11, Iacopo ROZZO wrote:
Thx for the prompt reply, but I think I oversimplified the example, my fault. 
In the actual scenario I want to handle there are several elements belonging to 
the default namespace, and I want to change namespace only to one particular 
element (including its children elements):

Input:
<sales xmlns:"http://ns.a";>
<dvd>
   <title>CXF ...</title>
   <price>38.68</price>
</dvd>
<cd>
   <title>CXF ...</title>
   <price>38.68</price>
</cd>
...
<book>
   <title>CXF ...</title>
   <price>38.68</price>
</book>
</sales>

Expected:
<sales xmlns:"http://ns.a";>
<dvd>
   <title>CXF ...</title>
   <price>38.68</price>
</dvd>
<cd>
   <title>CXF ...</title>
   <price>38.68</price>
</cd>
...
<book xmlns:"http://ns.b";>
   <title>CXF ...</title>
   <price>38.68</price>
</book>
</sales>

I looked to the code and I think that it is not possible to achieve that 
without specifying all children elements explicitly in the map. Am I correct?

Iacopo


-----Original Message-----
From: Sergey Beryozkin [mailto:[email protected]]
Sent: 06 October 2015 16:42
To: [email protected]
Subject: Re: CXF transformation feature to change namespace to element and all 
its children.

Hi

Can you try setting these two entries:

"{http://ns.a}sales => {http://ns.a}sales";
"{http://ns.a}* => {http://ns.b}*";

Cheers, Sergey
On 06/10/15 15:11, Iacopo ROZZO wrote:
Hi all,

I'm using cxf 3.0.2 and I have a question regarding the CXF transformation 
feature<http://cxf.apache.org/docs/transformationfeature.html>. I have the 
following scenario:

Input: All elements belong to namespace "ns.a"

<sales xmlns:"http://ns.a";>
<book>
    <title>CXF ...</title>
    <price>38.68</price>
</book>
</sales>

Expected output: Elements book, title and price should belong to namespace 
"ns.b"
<sales xmlns:"http://ns.a";>
<book xmlns:"http://ns.b";>
    <title>CXF ...</title>
    <price>38.68</price>
</book>
</sales>

If I only add this entry "{http://ns.a}book => {http://ns.b}book"; to the 
transformation map the namespace is only changed to book element (as normal). Is there any 
way of qualifying book and all its child elements without putting explicitly an entry for 
all book children elements?

Thanks,
Iacopo






--
Sergey Beryozkin

Talend Community Coders
http://coders.talend.com/

Blog: http://sberyozkin.blogspot.com

Reply via email to