Hi,

Actually CXF Transformation feature covers 99% of user needs:
1) changing input and output element names and namespaces
2) appending new input and output elements
3) replacing text content
4) dropping output and input elements
5) converting attributes to elements

Anyway I see some advanced use cases not supported by CXF Transformation 
feature, like:
1) replace/rename attributes;
2) replace/remove attributes values
3) replace text on the base of regular expressions
4) process lists
etc.

My proposal is to add property for Transformation feature that specified XSLT 
transformation script to support such advanced use cases.
It will look like:
<bean id="transformFeature" class="org.apache.cxf.feature.StaxTransformFeature">
  <property name="inXSLT" value="/org/test/my-in.xslt"/>
  <property name="outXSLT" value="/org/test/my-out.xslt"/>
</bean>

XSLT engine Xalan will probably break the streaming (AFAIK is still load tree 
into memory, incremental transformation just do it in optimized parallel way). 
But for small messages is still an option and looking forward - probably clean 
stream oriented XSLT will be supported in the future.

I have basic implementation and will provide a patch, if the improvement makes 
sense (https://issues.apache.org/jira/browse/CXF-4582 ).

Regards,
Andrei.

Reply via email to