[ https://issues.apache.org/jira/browse/CXF-3692?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13072399#comment-13072399 ]
Aki Yoshida commented on CXF-3692: ---------------------------------- Those complexReq* test cases are integrated from Andi's contributed patches for CXF-3681. Thanks Andi. Regards, aki > 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