[ 
https://issues.apache.org/jira/browse/CXF-3692?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Aki Yoshida updated CXF-3692:
-----------------------------

    Description: 
The current implementation is limited to 

*transform*
transform the name of an existing element from x1:e1 to x2:e2, 
from 
{code:xml} 
<x1:e1 xmlns:x1="ns1" ...>
  <x3:e3>...</x3:e3>
</x1:e1>
{code}
to
{code:xml} 
<x2:e2 xmlns:x2="ns2">
  <x3:e3>...</x3:e3>
</x2:e2>
{code}
using element property
  key="{ns1}e1" value="{ns2}e2"

*append*
wrap an existing element x1:e1 with a new element x2:e2, 
from 
{code:xml}
<x1:e1 ...>...</x1:e1>
{code}
to
{code:xml} 
<x2:e2 ...>
  <x1:e1 ...>...</x1:e1>
</x2:e2>
{code}
using append property
  key="{ns1}e1" value="{ns2}e2"


*drop*
unwrap an existing element x1:e1 from element x2:e2,
from 
{code:xml}
<x2:e2 ...>
  <x1:e1 ...>...</x1:e1>
</x2:e2>
{code}
to
{code:xml}
<x1:e1 ...>...</x1:e1>
{code}
using drop property
  value="{ns2}e2"



The enhanced implementation provides the following additional operations.

*deep-drop*
drop an existing element x2:e2 completely,
from 
{code:xml}
<x3:e3 ...>
  <x2:e2 ...>
    <x1:e1>...</x1:e1>
  </x2:e2>
  <x2:e4>...</x2:e4>
</x3:e3>
{code}
to 
{code:xml}
<x3:e3 ...>
  <x2:e4>...</x2:e4>
</x3:e3>
{code}
using transform property
  key="{ns2}e2" value=""

In contrast, the previously supported drop (or unwrap) operation can be seen as 
a shallow drop which results in
{code:xml}
<x3:e3 ...>
  <x1:e1>...</x1:e1>
  <x2:e4>...</x2:e4>
</x3:e3>
{code}
using drop property
  value="{ns2}e2"

*append-pre-include*
append a new element x2:e2 with content v2 before an existing element x1:e1,
from 
{code:xml}
<x3:e3 ...>
  <x1:e1>...</x1:e1>
</x3:e3>
{code}
to 
{code:xml}
<x3:e3 ...>
  <x2:e2>v2</x2:e2>
  <x1:e1>...</x1:e1>
</x3:e3>
{code}
using append property
  key="{ns1}e1" value="{ns2}e2:v2"

*append-post-include*
append a new element x2:e2 with content v2 inside an existing element x3:e3,
from 
{code:xml}
<x3:e3 ...>
  <x1:e1>...</x1:e1>
</x3:e3>
{code}
to 
{code:xml}
<x3:e3 ...>
  <x2:e2>v2</x2:e2>
  <x1:e1>...</x1:e1>
</x3:e3>
{code}
using append property
   key="{ns3}e3/" value="{ns2}e2:v2"

*append-post-wrap*
append a new element x2:e2 to wrap the content of an existing element x3:e3,
from 
{code:xml}
<x3:e3 ...>
  <x1:e1>...</x1:e1>
  <x2:e4>...</x2:e4>
</x3:e3>
{code}
to 
{code:xml}
<x3:e3 ...>
  <x2:e2>
    <x1:e1>...</x1:e1>
    <x2:e4>...</x2:e4>
  </x2:e2>
</x3:e3>
{code}
using append property
  key="{ns3}e3/" value="{ns2}e2"

In contrast, the previously supported append (or wrap) can be considered as 
append-pre-wrap which results in
{code:xml}
<x2:e2>
  <x3:e3 ...>
    <x1:e1>...</x1:e1>
    <x2:e4>...</x2:e4>
  </x3:e3>
</x2:e2>
{code}
using append property
  key="{ns3}e3" value="{ns2}e2"

The discussion regarding this change was discussed on users@cxf.
http://cxf.547215.n5.nabble.com/Problem-with-new-transform-feature-td4599185.html#a4600916

This change also corrects the issues reported in CXF-3681.



  was:
The current implementation is limited to 

*transform*
transform the name of an existing element from x1:e1 to x2:e2, 
from 
{code:xml} 
<x1:e1 xmlns:x1="ns1" ...>
  <x3:e3>...</x3:e3>
</x1:e1>
{code}
to
{code:xml} 
<x2:e2 xmlns:x2="ns2">
  <x3:e3>...</x3:e3>
</x2:e2>
{code}
using element property
  key="{ns1}e1" value="{ns2}e2"

*append*
wrap an existing element x1:e1 with a new element x2:e2, 
from 
{code:xml}
<x1:e1 ...>...</x1:e1>
{code}
to
{code:xml} 
<x2:e2 ...>
  <x1:e1 ...>...</x1:e1>
</x2:e2>
{code}
using append property
  key="{ns1}e1" value="{ns2}e2"


*drop*
unwrap an existing element x1:e1 from element x2:e2,
from 
{code:xml}
<x2:e2 ...>
  <x1:e1 ...>...</x1:e1>
</x2:e2>
{code}
to
{code:xml}
<x1:e1 ...>...</x1:e1>
{code}
using drop property
  value="{ns2}e2"



The enhanced implementation provides the following additional operations.

*deep-drop*
drop an existing element x2:e2 completely,
from 
{code:xml}
<x3:e3 ...>
  <x2:e2 ...>
    <x1:e1>...</x1:e1>
  </x2:e2>
  <x2:e4>...</x2:e4>
</x3:e3>
{code}
to 
{code:xml}
<x3:e3 ...>
  <x2:e4>...</x2:e4>
</x3:e3>
{code}
using transform property
  key="{ns2}e2" value=""

In contrast, the previously supported drop (or unwrap) operation can be seen as 
a shallow drop which results in
{code:xml}
<x3:e3 ...>
  <x1:e1>...</x1:e1>
  <x2:e4>...</x2:e4>
</x3:e3>
{code}
using drop property
  value="{ns2}e2"

*append-pre-include*
append a new element x2:e2 with content v2 before an existing element x1:e1,
from 
{code:xml}
<x3:e3 ...>
  <x1:e1>...</x1:e1>
</x3:e3>
{code}
to 
{code:xml}
<x3:e3 ...>
  <x2:e2>v2</x2:e2>
  <x1:e1>...</x1:e1>
</x3:e3>
{code}
using append property
  key="{ns1}e1" value="{ns2}e2:v2"

*append-post-include*
append a new element x2:e2 with content v2 inside an existing element x3:e3,
from 
{code:xml}
<x3:e3 ...>
  <x1:e1>...</x1:e1>
</x3:e3>
{code}
to 
{code:xml}
<x3:e3 ...>
  <x2:e2>v2</x2:e2>
  <x1:e1>...</x1:e1>
</x3:e3>
{code}
using append property
   key="{ns3}e3/" value="{ns2}e2:v2"

*append-post-wrap*
append a new element x2:e2 to wrap the content of an existing element x3:e3,
from 
{code:xml}
<x3:e3 ...>
  <x1:e1>...</x1:e1>
  <x2:e4>...</x2:e4>
</x3:e3>
{code}
to 
{code:xml}
<x3:e3 ...>
  <x2:e2>
    <x1:e1>...</x1:e1>
    <x2:e4>...</x2:e4>
  </x2:e2>
</x3:e3>
{code}
using append property
  key="{ns3}e3/" value="{ns2}e2"

In contrast, the previously supported append (or wrap) can be considered as 
append-pre-wrap which results in
{code:xml}
<x2:e2>
  <x3:e3 ...>
    <x1:e1>...</x1:e1>
    <x2:e4>...</x2:e4>
  </x3:e3>
</x2:e2>
{code}
using append property
  key="{ns3}e3" value="{ns2}e2"




> Enhancing the element-append and drop options of InTransformReader used by 
> transform feature
> --------------------------------------------------------------------------------------------
>
>                 Key: CXF-3692
>                 URL: https://issues.apache.org/jira/browse/CXF-3692
>             Project: CXF
>          Issue Type: Improvement
>          Components: Core
>    Affects Versions: 2.4.1
>            Reporter: Aki Yoshida
>            Assignee: Aki Yoshida
>             Fix For: 2.5
>
>
> The current implementation is limited to 
> *transform*
> transform the name of an existing element from x1:e1 to x2:e2, 
> from 
> {code:xml} 
> <x1:e1 xmlns:x1="ns1" ...>
>   <x3:e3>...</x3:e3>
> </x1:e1>
> {code}
> to
> {code:xml} 
> <x2:e2 xmlns:x2="ns2">
>   <x3:e3>...</x3:e3>
> </x2:e2>
> {code}
> using element property
>   key="{ns1}e1" value="{ns2}e2"
> *append*
> wrap an existing element x1:e1 with a new element x2:e2, 
> from 
> {code:xml}
> <x1:e1 ...>...</x1:e1>
> {code}
> to
> {code:xml} 
> <x2:e2 ...>
>   <x1:e1 ...>...</x1:e1>
> </x2:e2>
> {code}
> using append property
>   key="{ns1}e1" value="{ns2}e2"
> *drop*
> unwrap an existing element x1:e1 from element x2:e2,
> from 
> {code:xml}
> <x2:e2 ...>
>   <x1:e1 ...>...</x1:e1>
> </x2:e2>
> {code}
> to
> {code:xml}
> <x1:e1 ...>...</x1:e1>
> {code}
> using drop property
>   value="{ns2}e2"
> The enhanced implementation provides the following additional operations.
> *deep-drop*
> drop an existing element x2:e2 completely,
> from 
> {code:xml}
> <x3:e3 ...>
>   <x2:e2 ...>
>     <x1:e1>...</x1:e1>
>   </x2:e2>
>   <x2:e4>...</x2:e4>
> </x3:e3>
> {code}
> to 
> {code:xml}
> <x3:e3 ...>
>   <x2:e4>...</x2:e4>
> </x3:e3>
> {code}
> using transform property
>   key="{ns2}e2" value=""
> In contrast, the previously supported drop (or unwrap) operation can be seen 
> as a shallow drop which results in
> {code:xml}
> <x3:e3 ...>
>   <x1:e1>...</x1:e1>
>   <x2:e4>...</x2:e4>
> </x3:e3>
> {code}
> using drop property
>   value="{ns2}e2"
> *append-pre-include*
> append a new element x2:e2 with content v2 before an existing element x1:e1,
> from 
> {code:xml}
> <x3:e3 ...>
>   <x1:e1>...</x1:e1>
> </x3:e3>
> {code}
> to 
> {code:xml}
> <x3:e3 ...>
>   <x2:e2>v2</x2:e2>
>   <x1:e1>...</x1:e1>
> </x3:e3>
> {code}
> using append property
>   key="{ns1}e1" value="{ns2}e2:v2"
> *append-post-include*
> append a new element x2:e2 with content v2 inside an existing element x3:e3,
> from 
> {code:xml}
> <x3:e3 ...>
>   <x1:e1>...</x1:e1>
> </x3:e3>
> {code}
> to 
> {code:xml}
> <x3:e3 ...>
>   <x2:e2>v2</x2:e2>
>   <x1:e1>...</x1:e1>
> </x3:e3>
> {code}
> using append property
>    key="{ns3}e3/" value="{ns2}e2:v2"
> *append-post-wrap*
> append a new element x2:e2 to wrap the content of an existing element x3:e3,
> from 
> {code:xml}
> <x3:e3 ...>
>   <x1:e1>...</x1:e1>
>   <x2:e4>...</x2:e4>
> </x3:e3>
> {code}
> to 
> {code:xml}
> <x3:e3 ...>
>   <x2:e2>
>     <x1:e1>...</x1:e1>
>     <x2:e4>...</x2:e4>
>   </x2:e2>
> </x3:e3>
> {code}
> using append property
>   key="{ns3}e3/" value="{ns2}e2"
> In contrast, the previously supported append (or wrap) can be considered as 
> append-pre-wrap which results in
> {code:xml}
> <x2:e2>
>   <x3:e3 ...>
>     <x1:e1>...</x1:e1>
>     <x2:e4>...</x2:e4>
>   </x3:e3>
> </x2:e2>
> {code}
> using append property
>   key="{ns3}e3" value="{ns2}e2"
> The discussion regarding this change was discussed on users@cxf.
> http://cxf.547215.n5.nabble.com/Problem-with-new-transform-feature-td4599185.html#a4600916
> This change also corrects the issues reported in CXF-3681.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to