WSDL Tutorials - Herong's Tutorial Examples - v2.22, by Herong Yang
document/literal Example - Guest Registration
This section provides a tutorial example on writing a WSDL 1.1 example that uses SOAP 1.2 over HTTP with document/literal as the message style and the encoding option.
"document/literal" is the popular combination of message style and encoding option for most generic Web services. So let's write the first example with:
In this WSDL example, I want to send a SOAP request to register a list of guests. And I expect the server to return back a list of confirmations. So I wrote this WSDL document, Registration_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> Registration_WSDL_11_SOAP_12_Document.wsdl Copyright (c) by Herong Yang. 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="RegistrationRequest"> <xsd:complexType> <xsd:complexContent mixed="true"> <xsd:restriction base="xsd:anyType"> <xsd:sequence> <xsd:element name="Guest" type="xsd:string" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attribute name="date" type="xsd:date"/> <xsd:attribute name="event" type="xsd:string"/> </xsd:restriction> </xsd:complexContent> </xsd:complexType> </xsd:element> <xsd:element name="RegistrationResponse"> <xsd:complexType> <xsd:sequence> <xsd:element name="Confirmation" maxOccurs="unbounded"> <xsd:complexType> <xsd:complexContent> <xsd:restriction base="xsd:anyType"> <xsd:attribute name="guest" type="xsd:string"/> <xsd:attribute name="event" type="xsd:string"/> </xsd:restriction> </xsd:complexContent> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:schema> </wsdl:types> <wsdl:message name="registrationInputMessage"> <wsdl:part name="registrationInputPart" element="hy:RegistrationRequest"/> </wsdl:message> <wsdl:message name="registrationOutputMessage"> <wsdl:part name="registrationOutputPart" element="hy:RegistrationResponse"/> </wsdl:message> <wsdl:portType name="registrationPortType"> <wsdl:operation name="Registration"> <wsdl:input name="registrationInput" message="hy:registrationInputMessage"/> <wsdl:output name="registrationOutput" message="hy:registrationOutputMessage"/> </wsdl:operation> </wsdl:portType> <wsdl:binding name="registrationBinding" type="hy:registrationPortType"> <soap12:binding transport="http://schemas.xmlsoap.org/soap/http"/> <wsdl:operation name="Registration"> <soap12:operation style="document" soapActionRequired="false"/> <wsdl:input name="registrationInput"> <soap12:body use="literal"/> </wsdl:input> <wsdl:output name="registrationOutput"> <soap12:body use="literal"/> </wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:service name="registrationService"> <wsdl:port name="registrationPort" binding="hy:registrationBinding"> <soap12:address location= "https://www.herongyang.com/Service/Registration12.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