XML RPC Client



  • WSDL stands for Web Services Description Language
  • WSDL is used to describe web services
  • WSDL is written in XML
  • WSDL is a W3C recommendation from 26. June 2007

WSDL Documents

XML RPC Client is a Developer Tool that allows you to access and debug XML-RPC web services from the comfort of your desktop. Using XML RPC Client is easy: 1. Type in the desired XML-RPC Endpoint URL. Type in the specific desired XML-RPC function to call. However, it is a general purpose XML-RPC client and should work with any XML-RPC server. If you run into any issues or have a comment please contact support@devzing.com. XML-RPC is a format devised by Userland Software for achieving remote procedure call via XML using HTTP as the transport. Mimic - JavaScript XML-RPC Client Mimic is a JavaScript implementation of client-side XML-RPC protocol, compliant with IE, Firefox, Opera, Safari and Chrome. Mimic is able to produce XML-RPC requests and process XML-RPC responses, allowing the creation of WebService clients. The OpenVPN Connect Client program for Windows and macOS by default uses server-locked profiles. These contain only the information necessary to talk to the XML-RPC web interface of the Access Server for the purpose of authenticating a user and obtaining the required certificates and connection information to start the OpenVPN tunnel.

An WSDL document describes a web service. It specifies the location of the service, and the methods of the service, using these major elements:

ElementDescription
<types>Defines the (XML Schema) data types used by the web service
<message>Defines the data elements for each operation
<portType> Describes the operations that can be performed and the messages involved.
<binding>Defines the protocol and data format for each port type

The main structure of a WSDL document looks like this:

<definitions>
<types>
data type definitions........
</types>
<message>
definition of the data being communicated....
</message>
<portType>
set of operations......
</portType>
<binding>
protocol and data format specification....
</binding>
</definitions>

WSDL Example

This is a simplified fraction of a WSDL document:

<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>
XML RPC Client

In this example the <portType> element defines 'glossaryTerms' as the name of a port, and 'getTerm' as the name of an operation.

Python

The 'getTerm' operation has an input message called 'getTermRequest' and an output message called 'getTermResponse'.

The <message> elements define the parts of each message and the associated data types.

The <portType> Element

The <portType> element defines a web service, the operations that can be performed, and the messages that are involved.

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

TypeDefinition
One-wayThe operation can receive a message but will not return a response
Request-responseThe operation can receive a request and will return a response
Solicit-responseThe operation can send a request and will wait for a response
NotificationThe operation can send a message but will not wait for a response

WSDL 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 the example above, the portType '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.

WSDL 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 the example above, the portType 'glossaryTerms' defines a request-response operation called 'getTerm'.

Xml

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'.

WSDL Binding to SOAP

WSDL bindings defines the message format and protocol details for a web service.

A request-response operation example:

RPC
<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>
<binding type='glossaryTerms' name='b1'>
<soap:binding
transport='http://schemas.xmlsoap.org/soap/http' />
<operation>
<soap:operation soapAction='http://example.com/getTerm'/>
<input><soap:body use='literal'/></input>
<output><soap:body use='literal'/></output>
</operation>
</binding>

The binding element has two attributes - name and type.

The name attribute (you can use any name you want) defines the name of the binding, and the type attribute points to the port for the binding, in this case the 'glossaryTerms' port.

The soap:binding element has two attributes - style and transport.

The style attribute can be 'rpc' or 'document'. In this case we use document. The transport attribute defines the SOAP protocol to use. In this case we use HTTP.

XML RPC Client

The operation element defines each operation that the portType exposes.

For each operation the corresponding SOAP action has to be defined. You must also specify how the input and output are encoded. In this case we use 'literal'.


Xml Rpc Client Linux