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