Using XSLT Group By and XSLT 2.0 in SOA Suite Components
765320Dec 9 2011 — edited Dec 13 2011Hi All,
I have requirement of grouping the XML structure according to the Node value present in XML structure.
I need to model the XSLT as mentioned in the following post
http://stackoverflow.com/questions/2146648/how-to-apply-group-by-on-xslt-elements
This is called Muenchian grouping algorithm for grouping. When I tried to implement the same using the XSLT mapper(Not XSLT); I got following errors
Line Number:(20) : Error: "xsl:output" XSL Element Currently not Supported
Line Number:(22) : Error: "xsl:key" XSL Element Currently not Supported
Line Number:(26) : Error: "xsl:for-each-group" XSL Element Currently not Supported
I think Oracle XSLT processor is not supporting the XSLT element required to implement the Grouping algo.
Next Step; I created XSLT containing the Grouping logic. When I used the same in Mediator(The file in XSLT 2.0 and not the XSL Mapper file generated by Jdeveloper Ide)
in Static Routing Rule > Transform Using
I am getting following Runtime error
JCABinding=> XXXService XXXServiceAdapter Service XXXService was unable to perform delivery of inbound message to the composite default/JapanPOProcessor!1.0*soa_7a60ac21-2750-4ba3-9670-27c160c5c8ff due to: oracle.tip.mediator.infra.exception.MediatorException: ORAMED-03601:[Invalid transformer configuration]Unable to create transformer. It could be because of transformation file or configuration issues. Reason : "xsl/GeneratePOGroupCollection.xsl"Possible Fix:Check log file for any exceptions and contact Oracle Support Services for further help.
I think only XSLT Mapper file is supported for Transformation.
Now my question is how to use the above .xsl file which containing Grouping logic; in order to transform the XML.
1] Using Java Callout and using the Oracle XML SDK/JAXP API to call the Java logic to transform. Can oracle XML V2 parser supports for XSLT 2.0?
2] Can I use above XSLT using the BPEL function ??
ora:processXSLT('XXXX.xsl',bpws:getVariableData('inputVariable','payload'))"
Above construct is not supported in Mediator. Its only available for BPEL Components.
3] java callout in BPEL?
Let me know the implementation approach.If possible explain the same with example if any.