0% found this document useful (0 votes)
69 views23 pages

WSDL: Web Service Description Language

WSDL is an XML document that describes a web service, including what operations it exposes and how to access them. It defines data types, messages, operations and bindings in an abstract and platform-independent way. A WSDL document allows automated generation of client-side code for invoking the web service and describes the service's location and methods. It provides a standard way for web services to communicate and enables interoperability across different operating systems, languages and technologies.

Uploaded by

Saquib Anwar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
69 views23 pages

WSDL: Web Service Description Language

WSDL is an XML document that describes a web service, including what operations it exposes and how to access them. It defines data types, messages, operations and bindings in an abstract and platform-independent way. A WSDL document allows automated generation of client-side code for invoking the web service and describes the service's location and methods. It provides a standard way for web services to communicate and enables interoperability across different operating systems, languages and technologies.

Uploaded by

Saquib Anwar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 23

WSDL: Web Service

Description Language

1
Outline
What and why
WSDL document structure
Sections and elements
– types, messages, portTypes, bindings, and services
Namespaces
Demo1 – create a web service and its WSDL
document
Demo2 – XMethods WSDL interpretation
WSDL references
2
What is WSDL?
Web Service Description Language
WSDL is a document written in XML
The document describes a Web service
Specifies the location of the service and
the methods the service exposes

3
Why WSDL?
Without WSDL, calling syntax must be
determined from documentation that must
be provided, or from examining wire
messages
With WSDL, the generation of proxies for
Web services is automated in a truly
language- and platform-independent way

4
Where does WSDL fit?
SOAP is the envelope containing the
message
WSDL describes the service
UDDI is a listing of web services described
by WSDL

5
Document Structure
Written in XML
Two types of sections
– Abstract and Concrete
Abstract sections define SOAP messages
in a platform- and language-independent
manner
Site-specific matters such as serialization
are relegated to the Concrete sections

6
Abstract Definitions
Types: Machine- and language-
independent type definitions.
Messages: Contains function parameters
(inputs are separate from outputs) or
document descriptions.
PortTypes: Refers to message definitions
in Messages section that describe function
signatures (operation name, input
parameters, output parameters).

7
Concrete Descriptions
Bindings: Specifies binding(s) of each
operation in the PortTypes section.
Services: Specifies port address(es) of
each binding.

8
Operation
An operation is similar to a function in a
high level programming language
A message exchange is also referred to as
an operation
Operations are the focal point of
interacting with the service

9
Big Picture

10
An Example
<?xml version="1.0" encoding="UTF-8" ?>
This first line declares the document as an
XML document.
Not required, but helps the XML parser
determine whether to parse the file or
signal an error

11
Types Section
The type element defines the data types
that are used by the web service.
<xsd:complexType name="PERSON">
<xsd:sequence>
<xsd:element name="firstName“ type="xsd:string"/>
<xsd:element name="lastName" type="xsd:string"/>
<xsd:element name="ageInYears" type="xsd:int"/>
</xsd:sequence>
</xsd:complexType>

12
Messages Section
A message element defines parameters
The name of an output message element ends
in "Response" by convention
<message name="Simple.foo">
<part name="arg" type="xsd:int"/>
</message>

<message name="Simple.fooResponse">
<part name="result" type="xsd:int"/>
</message>

13
PortTypes Section
Defines a web service, the operations that can be
performed, and the messages that are involved.
<portType name="SimplePortType">
<operation name="foo" parameterOrder="arg" >
<input message="wsdlns:Simple.foo"/>
<outputmessage="wsdlns:Simple.fooResponse"/>
</operation>
</portType>

14
Bindings Section
The binding element defines the message
format and protocol details for each port.
<operation name="foo">
<soap:operation soapAction="http://tempuri.org/action/Simple.foo"/>
<input>
<soap:body use="encoded"
namespace="http://tempuri.org/message/"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
</input>
<output>
<soap:body use="encoded“
namespace="http://tempuri.org/message/“
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
</output>
</operation>

15
The Port Element
Each <port> element associates a location
with a <binding> in a one-to-one fashion
<port name="fooSamplePort"
binding="fooSampleBinding">
<soap:address
location="http://carlos:8080/fooService/foo.asp"/>
</port>

16
Services Section
A collection of related endpoints, where an
endpoint is defined as a combination of a
binding and an address
<service name="FOOSAMPLEService">
<port name="SimplePort“
binding="wsdlns:SimpleBinding">
<soap:address
location="http://carlos:8080/FooSample/
FooSample.asp"/>
</port>
</service>

17
An Example
<message name="Simple.foo">
<part name="arg" type="xsd:int"/>
</message>
<message name="Simple.fooResponse">
<part name="result" type="xsd:int"/>
</message>
<portType name="SimplePortType">
<operation name="foo" parameterOrder="arg" >
<input message="wsdlns:Simple.foo"/>
<output message="wsdlns:Simple.fooResponse"/>
</operation>
</portType>
The above describes what kind of C/C++ function call?
int foo(int arg);

18
Namespaces
The purpose of namespaces is to avoid naming
conflicts.
Imagine two complimentary web services,
named A and B, each with an element named
“foo”.
Each instance of foo can be referenced as A:foo
and B:foo
Example: "xmlns:xsd" defines a shorthand (xsd)
for the namespace
See http://www.w3.org/2001/XMLSchema.

19
Demo
Create a web service and generate its
WSDL document

20
Demo
Demo of XMethods WSDL interpretation

21
WSDL References [Primary]
http://msdn.microsoft.com/library/default.a
sp?url=/library/en-
us/dnwebsrv/html/wsdlexplained.asp
-a good overview of WSDL
http://msdn.microsoft.com/library/default.a
sp?url=/library/en-
us/dnwebsrv/html/understandWSDL.asp
-another good WSDL description

22
WSDL References [Secondary]
http://www.xmethods.com/ve2/Tools.po
-WSDL analyzer
http://soap.amazon.com/schemas2/Amazo
nWebServices.wsdl
-Amazon’s WSDL document
http://api.google.com/GoogleSearch.wsdl
-Google’s WSDL document

23

You might also like