WSDL Tutorials - Herong's Tutorial Examples - v2.22, by Herong Yang
SOAP Body and Operation Name - Book Reservation
This section provides a tutorial example on writing a WSDL 1.1 example that uses SOAP 1.2 over HTTP with style='document' and operation name as the first level element name in SOAP Body to help RPC method based client API like SOAP::Lite.
According the specification, if style="document" is used, there is no restriction on how you are going to define the structure of the SOAP Body element.
However, some RPC method based client API, like SOAP::Lite, may require you to use the operation name as the first level sub element name of the SOAP Body.
To help testing SOAP::Lite, I wrote the third example with:
In this WSDL example, I want to send a SOAP request to reserve a list of books in a library. And I expect the server to return the status of my reservation. So I wrote this WSDL document, Reservation_WSDL_11_SOAP_12_Document.wsdl:
<?xml version="1.0"?> <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:hy="https://www.herongyang.com/Service/" targetNamespace="https://www.herongyang.com/Service/"> <wsdl:documentation> Reservation_WSDL_11_SOAP_11_Document.wsdl Copyright (c) 2007 HerongYang.com. All Rights Reserved. </wsdl:documentation> <wsdl:types> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="https://www.herongyang.com/Service/"> <xsd:element name="Reservation"> <xsd:complexType> <xsd:complexContent mixed="true"> <xsd:restriction base="xsd:anyType"> <xsd:sequence> <xsd:element name="Member" type="xsd:string"/> <xsd:element name="ItemList"> <xsd:complexType> <xsd:sequence> <xsd:element name="Item" type="xsd:string" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:restriction> </xsd:complexContent> </xsd:complexType> </xsd:element> <xsd:element name="ReservationResponse"> <xsd:complexType> <xsd:complexContent mixed="true"> <xsd:restriction base="xsd:anyType"> <xsd:sequence> <xsd:element name="Number" type="xsd:string"/> <xsd:element name="Status" type="xsd:string"/> </xsd:sequence> </xsd:restriction> </xsd:complexContent> </xsd:complexType> </xsd:element> </xsd:schema> </wsdl:types> <wsdl:message name="reservationInputMessage"> <wsdl:part name="reservationInputPart" element="hy:Reservation"/> </wsdl:message> <wsdl:message name="reservationOutputMessage"> <wsdl:part name="reservationOutputPart" element="hy:ReservationResponse"/> </wsdl:message> <wsdl:portType name="reservationPortType"> <wsdl:operation name="Reservation"> <wsdl:input name="reservationInput" message="hy:reservationInputMessage"/> <wsdl:output name="reservationOutput" message="hy:reservationOutputMessage"/> </wsdl:operation> </wsdl:portType> <wsdl:binding name="reservationBinding" type="hy:reservationPortType"> <soap12:binding transport="http://schemas.xmlsoap.org/soap/http"/> <wsdl:operation name="Reservation"> <soap12:operation style="document" soapActionRequired="false"/> <wsdl:input name="reservationInput"> <soap12:body use="literal"/> </wsdl:input> <wsdl:output name="reservationOutput"> <soap12:body use="literal"/> </wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:service name="reservationService"> <wsdl:port name="reservationPort" binding="hy:reservationBinding"> <soap12:address location= "https://www.herongyang.com/Service/Reservation12.php"/> </wsdl:port> </wsdl:service> </wsdl:definitions>
See the next tutorial for testing requests and responses.
Table of Contents
WSDL 2.0 Document Structure and Syntax
WSDL Version 2.0 Part 2: Adjuncts
WSDL 2.0 Document Examples with SOAP Binding
Using WSDL Document in Java Apache Axis2/Java for WSDL
Apache Woden for WSDL Documents in Java
SoapUI - Web Service Testing Tool
WSDL 1.1 Document Structure and Syntax
WSDL 1.1 Binding Extension for SOAP 1.1
SoapUI as WSDL 1.1 Testing Tool
WSDL 1.1 and SOAP 1.1 Examples - Document and RPC Styles
PHP SOAP Extension for WSDL 1.1
Apache Axis2/Java for WSDL 1.1
Using WSDL2Java to Generate Web Service Stub Classes
WSDL 1.1 Binding Extension for SOAP 1.2
►WSDL 1.1 and SOAP 1.2 Examples - Document and RPC Styles
SOAP 1.2 Message Styles and Encoding Options
document/literal Example - Guest Registration
Request and Response - Guest Registration
rpc/encoded Example - Get Exchange Rate
Request and Response - Get Exchange Rate
►SOAP Body and Operation Name - Book Reservation
Request and Response - Book Reservation
elementFormDefault="qualified" - Refill Order
Request and Response - Refill Order