- From: Roberto Chinnici <Roberto.Chinnici@Sun.COM>
- Date: Wed, 26 Oct 2005 13:20:13 -0600
- To: www-ws-desc@w3.org
This message discharges the action item we got around LC333. For simplicity, in this proposal we limit ourselves to discussing the issue as it applies to the wsoap:mepDefault attribute. The same approach can be used (with the necessary mechanical adjustments) to the following HTTP binding attributes: whttp:methodDefault, whttp:queryParameterSeparatorDefault, whttp:transferCodingDefault. The issue is quite simple to describe, although some of the details are tricky. Basically, the SOAP and HTTP bindings don't take into account the possibility that an Endpoint component specify an interfaceless binding, i.e. a Binding component whose {interface} property has no value. At a high level, there are at least a couple of problems with part 2. The first one is that the wsoap:mepDefault attribute is syntax-only (i.e. it's not reflected in any component model property), so its usage is limited to explicitly specified Binding Operation components. In other words, since interfaceless bindings don't define Binding Operation components, currently they cannot use the mep default. The second issue is that the default binding rules are written in a way that does not cover the case of Interface Operation components for which there is no Binding Operation component, i.e. precisely the case of interfaceless bindings. The proposal is to introduce a new component model property in part 2 of the spec, i.e. an optional {soap mep default} property on the Binding component. We envision this to be done in a new, separate section similar to 5.5. The value of the property is mapped from the wsoap:mepDefault attribute in a straightforward way. The description of the property would resemble that of the {soap mep} property in section 5.7.2. Here's some text (wordsmithing welcome): {soap mep default} OPTIONAL. A xs:anyURI, which is an absolute IRI as defined by [IETF RFC 3987], to the Binding component. The value of this property identifies the default SOAP Message Exchange Pattern (MEP) for all the Interface Operation components of any Interface component that uses this Binding component. Then in section 5.7.4 we need to modify the mapping rule for the {soap mep} property to use the newly introduced property. Since we need to expand the default binding rules to cover interfaceless bindings anyway, we propose to change this section to simply store the value of the wsoap:mep attribute, if any, in the {soap mep} property, making the property optional. The existing rules about a MEP being required and on using the wsoap:mepDefault attribute would be folded in section 5.10.3 "Default Binding Rules" (more on this below). Here's the proposed new text: {soap mep} The actual value of the wsoap:mep attribute information item, if present, empty otherwise. To harmonize with it, the definition of the {soap mep} property in section 5.7.2 would be amended as follows: {soap mep} OPTIONAL. A xs:anyURI, which is an absolute IRI as defined by [IETF RFC 3987], to the Binding Operation component. The value of this property identifies the SOAP Message Exchange Pattern (MEP) for this specific operation. Finally, the rule for selecting a SOAP MEP in section 5.10.3 (Default Binding Rules) needs updating. Proposed text: SOAP MEP Selection. For a given Interface Operation component, if there is a Binding Operation component whose {interface operation} property matches the component in question and its {soap mep} property has a value, then the value of the {soap mep} property. Otherwise, the value of the Binding component's {soap mep default}, if any. Otherwise, if the Interface Operation component's {message exchange pattern} property has the value "http://www.w3.org/@@@@/@@/wsdl/in-out", then the URI "http://www.w3.org/2003/05/soap/mep/request-response/" identifying the SOAP Request-Response Message Exchange Pattern as defined in [SOAP 1.2 Part 2: Adjuncts]. Otherwise (i.e. if the Interface Operation component has any other value for the {message exchange pattern} property), it is an error. I would also argue that calling these rules "default binding rules" is somewhat of a misnomer, since (with the proposed changes), they now describe the rules that are used in all cases to compute certain values which are necessary for the correct operation of the SOAP binding. It would make more sense then to call them "binding rules" and make the necessary edits to the HTTP method selection and IRI generation properties. Thanks, Roberto
Received on Wednesday, 26 October 2005 19:20:31 UTC