W3C home > Mailing lists > Public > www-ws-desc@w3.org > April 2002

Re: alternative format for WSDL that is SOAP compatible

From: Jean-Jacques Moreau <moreau@crf.canon.fr>
Date: Tue, 02 Apr 2002 09:49:10 +0200
Message-ID: <3CA96276.219B44C2@crf.canon.fr>
CC: www-ws-desc@w3.org
FYI, I came across Alexsander's original message [1] when looking for WSDL issues beyond those listed at
[2]. Alexsander's original message was posted on the XML Protocol mailing list in October 2000.

Jean-Jacques.

[1] http://lists.w3.org/Archives/Public/xml-dist-app/2000Oct/0000.html
[2] http://wsdl.soapware.org/

Aleksander Slominski wrote:

> hi,
>
> it is over a year since we had this problem proposed a solution.
>
> however in our current thinking  interoperability and conformance to standards is the most important so
> instead of trying to convince other people about merits of simple data model for WSDL we just decided
> to support WSDL 1.1 XML format as transport format
>
> internally this kind of model simple object model is still used and i think also that similar models
> are used inside most of WSDL toolkits (such as WSDL4J) so having model directly serializable into SOAP
> encoding would have some value but IMHO it is not enough new value ...
>
> thanks,
>
> alek
>
> ps. also such XML as described below should be XSLT compatible with WSDL so the differences are more of
> representation than of semantics but i did not think about those issues for long time ...
>
> Jean-Jacques Moreau wrote:
>
> > Alexsander,
> >
> > I you are still interested in this topic, you may want to repost your message on the public W3C Web
> > Service Definition Working Group mailing list[1]. The WSD WG[2] was created ealier this year.
> >
> > Regards,
> >
> > Jean-Jacques Moreau.
> >
> > [1] mailto:www-ws-desc@w3.org
> > [2] http://www.w3.org/2002/ws/desc/
> >
> > > hi,
> > >
> > > i would like to propose alternative format for WSDL that is SOAP compatible.
> > > both representation would be equivalent and conversion should be fairly easy
> > > (for example by using XSLT).
> > >
> > > key benefit of using SOAP as encoding is to create standard mapping of WSDL
> > > construction into objects (SOAP structs and arrays). it means that there is
> > > no need to deal with DOM, namespaces or XSLT to process WSDL document
> > > instance and SOAP can transparently use multi-ref serialization to express
> > > equivalence of objects or even href to dynamically link remote to objects.
> > >
> > > wsdl-soap is alternative format that is using very simple object model that allows
> > > to serialize WSDL Service object with  SOAP encoding
> > >
> > >      Service
> > >          String name
> > >          Port[] ports
> > >      Port
> > >          String name
> > >          Binding binding /*defining as bindings[] would allow port to have multiple bindings!*/
> > >          PortType portType
> > >      Binding
> > >          String name
> > >          OperationBinding operationBindings[]
> > >      OperationBinding
> > >          String name
> > >          MessageBinding input
> > >          MessageBinding output
> > >          NamedMessageBinding faults[]
> > >      NamedMessageBinding
> > >          String name
> > >          MessageBinding messageBinding
> > >      MessageBinding
> > >          String name
> > >      PortType
> > >          String name
> > >          Operation operations[]
> > >      Operation
> > >          Message input
> > >          String inputName
> > >          Message output
> > >          String outputName
> > >          NamedMessage faults[]
> > >      NamedMessage
> > >          String name
> > >          Message message
> > >      Message
> > >          Part parts[]
> > >      Part
> > >          String name
> > >          QName element
> > >          QName type
> > >
> > > i am using inheritance to express extensibility, for example it is possible
> > > to define SOAP bindings as:
> > >
> > >      SoapPort extends Port
> > >          String location
> > >      SoapBinding extends Binding
> > >          String style
> > >          String transport
> > >      SoapOperationBinding extends OperationBinding
> > >          String soapAction
> > >      SoapMessageBinding extends MessageBinding
> > >          String use
> > >          String namespace
> > >          String encodingStyle
> > >
> > > rewriting Example 4 from WSDL specification in WSDL-SOAP alternative format
> > > would give:
> > >
> > > <ws:Service xmlns:ws="http://temp.uri/wsdl-soap/>
> > >    <name>StockQuoteService</name>
> > >     <ports SOAP-ENC:arrayType="ws:Port[1]">
> > >        <item xsi:type='ws:SoapPort'>
> > >             <name>StockQuotePort</name>
> > >             <location>http://example.com/stockquote>
> > >             <binding xsi:type="ws:SoapBinding">
> > >                 <name>StockQuoteSoapBinding</name>
> > >                 <style>rpc</style>
> > >                 <transport>http://schemas.xmlsoap.org/soap/http>
> > >                 <operationBindings SOAP-ENC:arrayType="ws:OperationBinding[1]">
> > >                    <item xsi:type='ws:SoapOperationBinding'>
> > >                     <name>GetLastTradePrice</name>
> > >                     <soapAction>http://example.com/GetLastTradePrice>
> > >                     <input xsi:type="ws:SoapBinding>
> > >                         <use>encoded</use>
> > >                         <namespace>http://example.com/stockquote>
> > >                         <encodingStyle>http://schemas.xmlsoap.org/soap/encoding/>
> > >                    </input>
> > >                     <output xsi:type="ws:SoapBinding>
> > >                         <use>encoded</use>
> > >                         <namespace>http://example.com/stockquote>
> > >                         <encodingStyle>http://schemas.xmlsoap.org/soap/encoding/>
> > >                    </input>
> > >                   </item>
> > >                 </operationBindings>
> > >             </binding>
> > >             <portType href="http://example.com/stockquote.wsdl#StockQuotePortType"/>
> > >        </item>
> > >     </ports>
> > > </ws:Service>
> > >
> > > and equivalent example in WSDL
> > >
> > >     <service name="StockQuoteService">
> > >         <documentation>My first service</documentation>
> > >         <port name="StockQuotePort" binding="tns:StockQuoteBinding">
> > >            <soap:address location="http://example.com/stockquote"/>
> > >         </port>
> > >     </service>
> > >
> > >    <binding name="StockQuoteSoapBinding" type="tns:StockQuotePortType">
> > >         <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
> > >         <operation name="GetLastTradePrice">
> > >            <soap:operation soapAction="http://example.com/GetLastTradePrice"/>
> > >            <input>
> > >                <soap:body use="encoded" namespace="http://example.com/stockquote"
> > >                         encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
> > >            </input>
> > >            <output>
> > >                <soap:body use="encoded" namespace="http://example.com/stockquote"
> > >                         encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
> > >            </output>
> > >         </operation>>
> > >     </binding>
> > >
> > > i welcome any comments on this approach.
> > >
> > > best regards,
> > >
> > > alek
> > >
> > > p.s. one possible extension of WSDL is to allow defining multiple bindings[]
> > > in Port object. it will allow to have multiple protocols for port - very nice
> > > way to express services capable of fail-over (also beneficial for performance)
> > > --
> > > Aleksander Slominski, LH 316, IU, http://www.extreme.indiana.edu/~aslom
> > > As I look afar I see neither cherry Nor tinted leaves Just a modest hut
> > > on the coast In the dusk of Autumn nightfall - Fujiwara no Teika (1162-1241)
Received on Tuesday, 2 April 2002 02:51:01 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 7 December 2009 10:58:19 GMT