[ 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