- From: Gaertner, Dietmar <Dietmar.Gaertner@softwareag.com>
- Date: Sun, 7 Jul 2002 23:03:42 +0200
- To: "'www-ws-desc@w3.org'" <www-ws-desc@w3.org>
- Cc: "'moreau@crf.canon.fr'" <moreau@crf.canon.fr>, "'michael.mahan@nokia.com'" <michael.mahan@nokia.com>, "'gdaniels@macromedia.com'" <gdaniels@macromedia.com>, "Gaertner, Dietmar" <Dietmar.Gaertner@softwareag.com>
I took an action item at the first soaptf telcon to review the WSDL 1.1 "style", "use" and "encodingStyle" attributes and propose necessary generalizations to cover SOAP 1.2 bindings. I also have some reasoning about the implicit/explicit linkage of the WSDL SOAP binding to SOAP 1.1 and 1.2. [soaptf] style, use, encodingStyle Attribbutes ============================================== soap:binding ------------ The SOAP WSDL binding schema has no explicit reference to a specific version of SOAP (except for a namespace declaration xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope" which is never used and thus redundant). The assumption that SOAP 1.1 is meant is implicit. If we assume that for each version of SOAP there is a corresponding WSDL SOAP binding schema, this is not a problem. However, it is at least clearer, if a given WSDL SOAP binding is explicitely associated with the SOAP version it corresponds. In order to distinguish between different SOAP bindings (SOAP 1.1, SOAP 1.2 and future versions) an explicit reference to the respective version of SOAP seems appropriate. Choices: a. in the WSDL SOAP binding schema; implicit as in WSDL 1.1 or explicit, e.g. for SOAP 1.1: <import namespace="http://schemas.xmlsoap.org/soap/envelope"> for SOAP 1.2: <import namespace="http://www.w3.org/2002/06/soap-envelope"> b. in the WSDL document, e.g. using a new attribute "envelope", for SOAP 1.1: <soap:binding envelope="http://schemas.xmlsoap.org/soap/envelope"...> for SOAP 1.2: <soap:binding envelope="http://www.w3.org/2002/06/soap-envelope"...> If the WSDL document (not the schema) explicitely specifies the used version of SOAP, this would give us a chance to to have a common WSDL SOAP 1.1 and 1.2 binding schema. Proposal: let the WSDL document specify the required version of SOAP (choice b). style attribute --------------- The WSDL 1.1 (optional) soap:style attribute (for binding and operation elements) has two possible values, "rpc" and "document". The binding of these values to SOAP 1.1 style RPC or document format is implicit. SOAP 1.2 defines a URI which uniquely defines the SOAP 1.2 RPC, "http://www.w3.org/2002/06/soap-rpc". Using URIs as values for the style attribute would allow for explicitely identifying the RPC style, be it the default RPC defined by SOAP or a custom one. Proposal: for SOAP 1.1: <soap:binding ... style="rpc"> for SOAP 1.2: <soap:binding ... style="http://www.w3.org/2002/06/soap-rpc"> Related SOAP 1.2 feature: Web method specification feature, http://www.w3.org/2002/06/soap/features/web-method/. See also: issues 27, 40. encodingStyle attribute ----------------------- The possible values for the encodingStyle attribute (soap:body, soap:header and soap:headerfault element) is a list of anyURI in SOAP 1.1 and a single anyURI in SOAP 1.2 (see issue 30). Thought: why not using the definition of this attribute from the SOAP envelope schema, e.g. <attibute ref="soap-env:encodingStyle" ...> Proposal: For SOAP 1.2 encodingStyle values must be a single URI or an empty string to denote no special encoding (literal XML). Usage examples: <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding" ...> <soap:body encodingStyle="http://www.w3.org/2002/06/soap-encoding" ...> See also: issues 5, 30. use attribute ------------- The "use" attribute (soap:body, soap:header and soap:headerfault element) has possible values: "literal" and "encoded". The following combinations of style/use are possible: document/literal - makes sense document/encoded - makes sense (e.g. for documents using the SOAP data model) rpc/literal - does this make sense? SOAP 1.2 RPC requires SOAP Struct and Array rpc/encoded - makes sense (rpc even requires encoded) Given that there can be used different encoding styles, and when use="encoded" also encodingStyle="..." has to be specified, isn't use="encoded" redundant? Even more, isn't encodingStyle="" equivalent to use="literal" and encodingStyle="someURI" equivalent to use="encoded" encodingStyle="someURI" ? Proposal: Eliminate the "use" attribute and just use the "encodingStyle" attribute to express "literal" via an empty string value and "encoded" via a non-empty string value.
Received on Sunday, 7 July 2002 17:03:54 UTC