- From: Aleksander Slominski <aslom@cs.indiana.edu>
- Date: Sun, 01 Oct 2000 10:29:23 -0500
- To: "xml-dist-app@w3.org" <xml-dist-app@w3.org>
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</location> <binding xsi:type="ws:SoapBinding"> <name>StockQuoteSoapBinding</name> <style>rpc</style> <transport>http://schemas.xmlsoap.org/soap/http</transport> <operationBindings SOAP-ENC:arrayType="ws:OperationBinding[1]"> <item xsi:type='ws:SoapOperationBinding'> <name>GetLastTradePrice</name> <soapAction>http://example.com/GetLastTradePrice</soapAction> <input xsi:type="ws:SoapBinding> <use>encoded</use> <namespace>http://example.com/stockquote</namespace> <encodingStyle>http://schemas.xmlsoap.org/soap/encoding/</encodingStyle> </input> <output xsi:type="ws:SoapBinding> <use>encoded</use> <namespace>http://example.com/stockquote</namespace> <encodingStyle>http://schemas.xmlsoap.org/soap/encoding/</encodingStyle> </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 Sunday, 1 October 2000 11:28:24 UTC