Proposal
Add section 10
10 Information References
10.1 Reference WSDL 1.1 Schema
<?xml version="1.0" encoding="utf-8" ?> <definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:wsu="http://schemas.xmlsoap.org/ws/2002/07/utility" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:atom="http://purl.org/atom/ns#" xmlns:atomtypes="http://purl.org/atom/ns/types#" xmlns:atomapi="http://purl.org/atom/ns/wsdl#" targetNamespace="http://purl.org/atom/ns/wsdl#"> <documentation> This WSDL document describes the SOAP interface for the Atom API. The Atom SOAP interface was originally defined here http://www.intertwingly.net/wiki/pie/DifferentlyAbledClients. </documentation> <types> <xs:schema elementFormDefault="qualified" targetNamespace="http://purl.org/atom/ns/types#"> <xs:import namespace="http://purl.org/atom/ns#" schemaLocation="AtomApi.0.3.0.xsd" /> <xs:element name="POST"> <xs:annotation> <xs:documentation> Both the POST request and response have the following element in the SOAP:body. The POST request must have exactly one atom:entry element. The POST response may have zero or one atom:entry elements. </xs:documentation> </xs:annotation> <xs:complexType> <xs:sequence> <xs:element ref="atom:entry" minOccurs="0" maxOccurs="1"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="PUT"> <xs:annotation> <xs:documentation> The PUT request has the following element in the SOAP:body. </xs:documentation> </xs:annotation> <xs:complexType> <xs:sequence> <xs:element ref="atom:entry" minOccurs="0" maxOccurs="1"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="DELETE"> <xs:annotation> <xs:documentation> The DELETE request has the following element in the SOAP:body. </xs:documentation> </xs:annotation> </xs:element> <xs:element name="GET"> <xs:annotation> <xs:documentation> Both the GET request and response have the following element in the SOAP:body. The GET request must have an empty GET wrapper w/ zero atom:entry child elements. The GET response must have one atom:entry child element. </xs:documentation> </xs:annotation> <xs:complexType> <xs:sequence> <xs:element ref="atom:entry" minOccurs="0" maxOccurs="1"/> </xs:sequence> </xs:complexType> </xs:element> </xs:schema> </types> <message name="POSTIn"> <documentation> The POST request message has one element of type and name POST. </documentation> <part name="POST" element="atomtypes:POST"/> </message> <message name="POSTOut"> <documentation> The POST response message has one element of type and name POST. </documentation> <part name="POST" element="atomtypes:POST"/> </message> <message name="DELETEIn"> <documentation> The DELETE request message has one element of type and name DELETE. </documentation> <part name="DELETE" element="atomtypes:DELETE"/> </message> <message name="DELETEOut"> </message> <message name="GETIn"> <part name="GET" element="atomtypes:GET"/> </message> <message name="GETOut"> <part name="GET" element="atomtypes:GET"/> </message> <message name="PUTIn"> <part name="PUT" element="atomtypes:PUT"/> </message> <message name="PUTOut"> </message> <portType name="atom3"> <operation name="POST"> <input message="atomapi:POSTIn"/> <output message="atomapi:POSTOut"/> </operation> <operation name="DELETE"> <input message="atomapi:DELETEIn"/> <output message="atomapi:DELETEOut"/> </operation> <operation name="GET"> <input message="atomapi:GETIn"/> <output message="atomapi:GETOut"/> </operation> <operation name="PUT"> <input message="atomapi:PUTIn"/> <output message="atomapi:PUTOut"/> </operation> </portType> <binding name="atom3" type="atomapi:atom3"> <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/> <operation name="POST"> <soap:operation soapAction="http://schemas.xmlsoap.org/soap/http/POST" style="document"/> <input> <documentation>Note: the input message SHOULD carry a wss:Security SOAP header with the Username token.</documentation> <soap:body use="literal"/> </input> <output> <soap:body use="literal"/> </output> </operation> <operation name="DELETE"> <soap:operation soapAction="http://schemas.xmlsoap.org/soap/http/DELETE" style="document"/> <input> <documentation>Note: the input message SHOULD carry a wss:Security SOAP header with the Username token.</documentation> <soap:body use="literal"/> </input> <output> <soap:body use="literal"/> </output> </operation> <operation name="GET"> <soap:operation soapAction="http://schemas.xmlsoap.org/soap/http/GET" style="document"/> <input> <documentation>Note: the input message SHOULD carry a wss:Security SOAP header with the Username token.</documentation> <soap:body use="literal"/> </input> <output> <soap:body use="literal"/> </output> </operation> <operation name="PUT"> <soap:operation soapAction="http://schemas.xmlsoap.org/soap/http/PUT" style="document"/> <input> <documentation>Note: the input message SHOULD carry a wss:Security SOAP header with the Username token.</documentation> <soap:body use="literal"/> </input> <output> <soap:body use="literal"/> </output> </operation> </binding> <service name="atom3"> <port name="atom3" binding="atomapi:atom3"> <soap:address location="http://localhost/atom3.asmx"/> </port> </service> </definitions>
10.2 Reference WSDL 2.0 Schema
<definitions xmlns="http://www.w3.org/2004/03/wsdl" xmlns:http="http://www.w3.org/@@@@/@@/wsdl/http" xmlns:wsoap="http://www.w3.org/@@@@/@@/wsdl/soap" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:wsse="http://schemas.xmlsoap.org/ws/2003/06/secext" xmlns:wsu="http://schemas.xmlsoap.org/ws/2002/07/utility" xmlns:atom="http://purl.org/atom/ns#" xmlns:atomtypes="http://purl.org/atom/ns/types#" xmlns:atomapi="http://purl.org/atom/ns/wsdl#" targetNamespace="http://purl.org/atom/ns/ wsdl#"> <types> <xs:schema targetNamespace="http://schemas.xmlsoap.org/ws/2002/07/secext" elementFormDefault="qualified"> <xs:import namespace="http://purl.org/atom/ns#" schemaLocation="AtomApi.0.3.0.xsd"/> <xs:element name="Location" type="xs:anyURI"/> <xs:element name="POST"> <xs:annotation> <xs:documentation> The POST request must have exactly one atomtypes:entry element. </xs:documentation> </xs:annotation> <xs:complexType> <xs:sequence> <xs:element ref="atomtypes:entry" minOccurs="1" maxOccurs="1"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="PUT"> <xs:annotation> <xs:documentation> The PUT request has the following element in the SOAP:body. </xs:documentation> </xs:annotation> <xs:complexType> <xs:sequence> <xs:element ref="atomtypes:entry" minOccurs="1" maxOccurs="1"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="DELETE"> <xs:annotation> <xs:documentation> The DELETE request has the following element in the SOAP:body. </xs:documentation> </xs:annotation> </xs:element> <xs:element name="GET"> <xs:annotation> <xs:documentation> The GET request must have an empty GET wrapper w/ zero atomtypes:entry child elements. </xs:documentation> </xs:annotation> </xs:element> </xs:schema> </types> <interface name="atomHTTP"> <operation name="PostEntry"> <input element="atomtypes:entry"/> <output element="atomtypes:entry"> <property uri="http://www.w3.org/@@@@/@@/features/AD/data"> <constraint>atomtypes:Location</constraint> </property> </output> </operation> <operation name="DeleteEntry"> </operation> <operation name="GetEntry"> <output element="atomtypes:entry"/> </operation> <operation name="PutEntry"> <input element="atomtypes:entry"/> <output element="atomtypes:entry"/> </operation> <operation name="GetFeed"> <output element="atomtypes:feed"> <property uri="http://www.w3.org/@@@@/@@/features/AD/data"> <constraint>atomtypes:Location</constraint> </property> </output> </operation> </interface> <!-- Use of the AD feature/module for ws-security is very very dubious, but included here for completeness given the WSDL 1.1 for Atom --> <interface name="atomSOAP"> <operation name="POST"> <input element="atomapi:POST"> <property uri="http://www.w3.org/@@@@/@@/features/AD/data"> <constraint>wsse:Security</constraint> </property> </input> <output element="atomtypes:entry"/> </operation> <operation name="DELETE"> <input element="atomapi:DELETE"> <property uri="http://www.w3.org/@@@@/@@/features/AD/data"> <constraint>wsse:Security</constraint> </property> </input> </operation> <operation name="GET"> <input element="atomapi:GET"> <property uri="http://www.w3.org/@@@@/@@/features/AD/data"> <constraint>wsse:Security</constraint> </property> </input> <output element="atomtypes:entry"/> </operation> <operation name="PUT"> <input element="atomapi:PUT"> <property uri="http://www.w3.org/@@@@/@@/features/AD/data"> <constraint>wsse:Security</constraint> </property> </input> </operation> </interface> <binding name="atomSOAP" interface="atomapi:atomSOAP" wsoap:protocol="http://schemas.xmlsoap.org/soap/http"> <!-- Use of the AD feature/module for ws-security is very very dubious, but included here for completeness given the WSDL 1.1 for Atom --> <wsoap:module uri="http://www.w3.org/@@@@/@@/modules/AD"/> <operation ref="POST" wsoap:action="http://purl.org/atom/ns/http/POST"/> <operation ref="DELETE" wsoap:action="http://purl.org/atom/ns/http/DELETE"/> <operation ref="GET" wsoap:action="http://purl.org/atom/ns/http/GET"/> <operation ref="PUT" wsoap:action="http://purl.org/atom/ns/http/PUT"/> </binding> <!-- Must completely associate a binding with URI, so multiple URIs=multiple bindings --> <binding name="atomHTTPPOSTURI" interface="atomapi:atomHTTP"> <operation ref="PostEntry" http:method="POST"/> </binding> <binding name="atomHTTPEntryURI" interface="atomapi:atomHTTP"> <operation ref="DeleteEntry" http:method="DELETE"/> <operation ref="GetEntry" http:method="GET"/> <operation ref="PutEntry" http:method="PUT"/> </binding> <binding name="atomHTTPFeedURI" interface="atomapi:atomHTTP"> <operation ref="GetFeed" http:method="GET"/> </binding> <!-- addresses are dynamic --> <service name="atom3soap"> <endpoint name="atom3SOAP" binding="atomapi:atomSOAP"/> </service> <!-- Each URI has been separated so the link could say whether it is --> <!-- for an endpoint or an interface. --> <service name="atom3http" http:authenticationType="basic"> <endpoint name="atom3HTTPPOSTURI" binding="atomapi:atomHTTPPOSTURI"/> <endpoint name="atom3HTTPEntryURI" binding="atomapi:atomHTTPEntryURI"/> <endpoint name="atom3HTTPFeedURI" binding="atomapi:atomHTTPFeedURI"/> </service> </definitions>
Where
The WSDL 1.1 can be found here. The WSDL 2.0 can be found here.
Rationale
Standardize on the format of the SOAP messages.
Notes
In pasting the WSDL, there were some obvious Wiki formatting issues.
The AtomApi.0.3.0.xsd is not included here. Rather it should be included in the format spec.
Author
Comments
[AsbjornUlsberg] I think this Pace is in serious lack of specification text. Wouldn't it be better to have the "proposal" be text to go in the specification, and rather have that text point to the WSDL file somehow?