Web service example 4: Document-oriented method with simple type parameters |
First complete Web service example 1: RPC-oriented method with simple type parameters. This example is an add-on. In this example, you extend the TRAVELSERVICE web service provider with a documented-oriented GETTOURSDocument method that retrieves Tour details for a specified destination and tour type. Functionally, this is equivalent to Web Service Example 1. The difference is that for a documented-oriented method, the body of the SOAP request and response messages must contain one or more XML documents. This has an impact in three places: 1.For a documented-oriented method, the body of the SOAP response message must contain one or more XML documents. You, the developer of the web service provider, must provide the XML elements surrounding the parameter values.
SELECT '<DestinationResponse>'||destination||'</DestinationResponse>' , '<TourTypeResponse>'||tour_type||'</TourTypeResponse>' , '<NumDaysResponse>'||num_days||'</Num_DaysResponse>' , '<DescriptionResponse>'||description||'</DescriptionResponse>' FROM tour
2.Also, the body of the SOAP request message must contain one or more XML documents. The INVOKE statement, issued by the client application now reads: INVOKE TRAVELCOMPONENT.GETTOURSDocument WITH SELECT '<DestinationRequest xmlns="http://MyWebServer/TravelService/TRAVELSERVICE.wsdl"> AUSTRALIA</DestinationRequest>' , '<TourTypeRequest xmlns="http://MyWebServer/TravelService/TRAVELSERVICE.wsdl"> ISLAND SUNTANNER</TourTypeRequest>'
3.To execute a query on Tours, you need to extract the relevant values from these input parameters.
WHERE destination = USXSL.value(:DestinationRequest , '/ns:DestinationRequest' , 'xmlns:ns="http://MyWebServer/TravelService/TRAVELSERVICE.wsdl"') AND tour_type = USXSL.value(:TourTypeRequest , '/ns:TourTypeRequest' , 'xmlns:ns="http://MyWebServer/TravelService/TRAVELSERVICE.wsdl"')
For details, refer to See also topic: The USXSL Component.
Continue with Web service example 4: Step-by-step instructions See also |