- From: Hugo Haas <hugo@w3.org>
- Date: Mon, 28 Feb 2005 18:06:41 -0500
- To: public-ws-addressing@w3.org
- Message-ID: <20050228230641.GK4520@w3.org>
Based on today's discussions: -=- SOAP 1.2 text for the spec -=- If the http://www.w3.org/2003/05/soap/features/action/Action property of the SOAP Action feature has a value, then the value of the http://www.w3.org/YYYY/MM/addressing/soap12/feature/Action property of the Web Services Addressing 1.0 feature MUST be identical to it. Implication: if one uses the action parameter of the application/soap+xml, then its value is the same as Addressing's [action] message addressing property; example: Valid: <wsa:Action>http://foo.example</wsa:Action> with: application/soap+xml;action='http://foo.example' Valid: <wsa:Action>http://foo.example</wsa:Action> with: application/soap+xml Invalid: <wsa:Action>http://foo.example</wsa:Action> with: application/soap+xml;action='http://bar.example' -=- SOAP 1.1 text for the spec -=- SOAP 1.1 is trickier. An empty SOAPAction means that no intent is specified, which is equivalent to SOAP 1.2's property having no value. A URI specified in SOAPAction specifies an intent with this URI, which is equivalent to SOAP 1.2's property having a value. However, there is a third case: if SOAPAction's value is "", the intent is identified with the Request URI. Moreover, the WS-I BP forces to have either a full URI, or "". So one cannot convey no intent with the WS-I BP. We therefore have the following choices: 1. say that "URI" sets the value of [action] to URI, empty value doesn't put any constraint, and "" sets the value of [action] to the Request URI. 2. "URI" sets the value of [action] to URI, and "" or empty value places no constraints: this violates SOAP 1.1 IMO[1], or at least defeats our effort to align [action] with the intent expressed in SOAPAction. 3. say that "URI" sets the value of [action] to URI, and empty value doesn't put any constraint; "" is not allowed; people using the WS-I BP are forced to always specify a URI in SOAP Action. 4. do something different then for SOAP 1.2: force the alignment; it's essentially 3 for everybody, even people not using the WS-I BP. 5. go a complete other route for the issue 5 would be a shame as we got what we wanted for SOAP 1.2. 1 is complex. 2 is bad. 3 is therefore my favorite option (it's a relaxed version of 4): When issuing a SOAP HTTP Request, the value of the SOAPAction header field MUST either be equal to the value of the [address] message addressing property, or MUST be empty. Implication: if one wants to communicate an action via SOAPAction, then it matches Addressing's [action] message addressing property, or no intent to specified; this is the same behavior as for SOAP 1.2; example: Valid: <wsa:Action>http://foo.example</wsa:Action> with: SOAPAction: "http://foo.example" Valid: <wsa:Action>http://foo.example</wsa:Action> with: SOAPAction: Invalid: <wsa:Action>http://foo.example</wsa:Action> with: SOAPAction: "http://bar.example" Invalid: <wsa:Action>http://foo.example</wsa:Action> with: SOAPAction: "" -=- Fault if this rule isn't followed -=- With our direction to relate SOAP Action and [action], I believe that we should specify to raise a fault if both have values and they don't match. We can either define a new fault, or raise a wsa:InvalidMessageInformationHeader fault. 1. http://www.w3.org/TR/2000/NOTE-SOAP-20000508/#_Toc478383528 -- Hugo Haas - W3C mailto:hugo@w3.org - http://www.w3.org/People/Hugo/
Received on Monday, 28 February 2005 23:06:43 UTC