WSDL Ports

From http://www.w3schools.com (Copyright Refsnes Data)

# WSDL Ports

A WSDL port describes the interfaces (legal operations) exposed by a web service.

## WSDL Ports

The <portType> element is the most important WSDL element.

It defines a web service, the operations that can be performed, and the messages that are involved.

The port defines the connection point to a web service. It can be compared to a function library (or a module, or a class) in a traditional programming language. Each operation can be compared to a function in a traditional programming language.

## Operation Types

The request-response type is the most common operation type, but WSDL defines four types:

Type | Definition
--- | ---
One-way | The operation can receive a message but will not return a response
Request-response | The operation can receive a request and will return a response
Solicit-response | The operation can send a request and will wait for a response
Notification | The operation can send a message but will not wait for a response

## One-Way Operation

A one-way operation example:

    <message name="newTermValues">
       <part name="term" type="xs:string"/>
       <part name="value" type="xs:string"/>
    </message>

    <portType name="glossaryTerms">
       <operation name="setTerm">
          <input name="newTerm" message="newTermValues"/>
       </operation>
    </portType >

In this example the port "glossaryTerms" defines a one-way operation called "setTerm".

The "setTerm" operation allows input of new glossary terms messages using a "newTermValues" message with the input parameters "term" and "value". However, no output is defined for the operation.

## Request-Response Operation

A request-response operation example:

    <message name="getTermRequest">
       <part name="term" type="xs:string"/>
    </message>

    <message name="getTermResponse">
       <part name="value" type="xs:string"/>
    </message>

    <portType name="glossaryTerms">
      <operation name="getTerm">
          <input message="getTermRequest"/>
          <output message="getTermResponse"/>
      </operation>
    </portType>

In this example the port "glossaryTerms" defines a request-response operation called "getTerm".

The "getTerm" operation requires an input message called "getTermRequest" with a parameter called "term", and will return an output message called "getTermResponse" with a parameter called "value".

From http://www.w3schools.com (Copyright Refsnes Data)