UserPreferences

PaceWsdl


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 [WWW]here. The WSDL 2.0 can be found [WWW]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

RandyCharlesMorin

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?


CategoryProposals