A WSDL document is written in the eXtensible Markup Language (XML) and describes a web service. It specifies the location of the service and the operations the service exposes.
The WSDL specification can be found at http://www.w3.org/TR/wsdl.
The portType property in the Liberty ID-WSF Discovery Service WSDL file defines the Discovery Service operations.
DiscoveryLookup allows the Discovery Service to be queried. Using a Query, a WSC can find out which web service provider (WSP) stores the identity data relevant to the principal's request. The Discovery Service responds with QueryResponse that includes the necessary information for that identity.
DiscoveryUpdate enables maintenance of resource offerings already defined for the Discovery Service. Using a Modify, a WSC can add and remove resources, or change existing ones. The Discovery Service responds with ModifyResponse.
Following is a reproduction of liberty-idwsf-disco-svc-v1.2.wsdl, the Liberty ID-WSF Discovery Service WSDL file.
<?xml version="1.0"?> <definitions name="disco-svc" targetNamespace="urn:liberty:disco:2003-08" xmlns:typens="urn:liberty:disco:2003-08" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:sb="urn:liberty:sb:2003-08" xmlns:disco="urn:liberty:disco:2003-08"> <!-- Abstract WSDL for Liberty Discovery Service Specification --> <xsd:documentation> XML Schema from Liberty Discovery Service Specification. ### NOTICE ### Copyright (c) 2004-2005 Liberty Alliance participants, see http://www.projectliberty.org/specs/idwsf_1_1_copyrights.php </xsd:documentation> <types> <xsd:schema> <xsd:import schemaLocation="liberty-idwsf-disco-svc-exts-v1.2.xsd"/> <xsd:import schemaLocation="liberty-idwsf-soap-binding-exts-v1.2.xsd"/> <xsd:import schemaLocation="liberty-idwsf-soap-binding-v1.2.xsd"/> </xsd:schema> </types> <message name="Query"> <part name="body" element="disco:Query"/> </message> <message name="QueryResponse"> <part name="body" element="disco:QueryResponse"/> </message> <message name="Modify"> <part name="body" element="disco:Modify"/> </message> <message name="ModifyResponse"> <part name="body" element="disco:ModifyResponse"/> </message> <message name="CorrelationHeader"> <part name="Correlation" element="typens:Correlation"/> </message> <portType name="DiscoveryPort"> <operation name="DiscoveryLookup"> <input message="typens:Query"/> <output message="typens:QueryResponse"/> </operation> <operation name="DiscoveryUpdate"> <input message="typens:Modify"/> <output message="typens:ModifyResponse"/> </operation> </portType> <!-- An example of a binding and service that can be used with this abstract service description is provided below. --> <binding name="DiscoveryBinding" type="typens:DiscoveryPort"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="DiscoveryLookup"> <soap:operation soapAction="http://example.com/DiscoveryLookup"/> <input> <soap:header message="typens:CorrelationHeader" part="Correlation" use="literal"/> <soap:body use="literal"/> </input> <output> <soap:header message="typens:CorrelationHeader" part="Correlation" use="literal"/> <soap:body use="literal"/> </output> </operation> <operation name="DiscoveryUpdate"> <soap:operation soapAction="http://example.com/DiscoveryUpdate"/> <input> <soap:header message="typens:CorrelationHeader" part="Correlation" use="literal"/> <soap:body use="literal"/> </input> <output> <soap:header message="typens:CorrelationHeader" part="Correlation" use="literal"/> <soap:body use="literal"/> </output> </operation> </binding> <service name="DiscoveryService"> <port name="DiscoveryPort" binding="typens:DiscoveryBinding"> <!-- Modify with the REAL SOAP endpoint --> <soap:address location="http://example.com/discovery"/> </port> </service> </definitions> |