In an environment with existing SOAP and REST clients, you do not need to modify these clients to work with Virtual DataPort Web services. You can define XSLT stylesheets (XSL Transformations) to transform the incoming requests in order to adapt them to the format that the Denodo Web services expect. You can also define stylesheets to transform the responses of these services, before sending them to the existing clients.
Virtual DataPort uses the Saxon-HE XSLT and XQuery processor <http://saxon.sourceforge.net/> to process XSLT transformations. This processor supports the XSLT 2.0 specification.
Follow these steps to define XSLT transformations for a Web service:
- In the Settings tab of the “SOAP Web service” or “REST Web service”, select the operation (Operation name) or view (Resource configuration) you want to transform and click XSLT Transformation.
- Select the Input XSLT Transformation check box and write the stylesheet. This stylesheet will be applied to the incoming requests, to transform them into the format expected by the Virtual DataPort Web service. If this check box is cleared, the input will not be modified.
- Select the Output XSLT Transformation check box and write the stylesheet. This stylesheet will be applied to the responses generated by the Denodo Web service, to transform them into the format expected by the existing SOAP client. If this check box is cleared, the input will not be modified.
- Only for SOAP Web services: if the existing SOAP client sends the
SOAPActionwith its requests and the parameter cannot be changed, select the Incoming SOAPAction check box and write it.
- Click Ok and repeat these steps for each operation of the Web service that you want to transform.
By default, the XSLT transformations are applied to data but not to the error messages returned by the Web service. Select Apply output XSLT to error messages if you want the Service to apply the transformations to error messages as well. In REST Web services, this option only affects the XML representation of the views.
See appendix Customizing Events and Public Render Parameters of JSR-286 Portlets for more details on how to generate these XSLT stylesheets.