- From: Jonathan Marsh <jmarsh@microsoft.com>
- Date: Mon, 17 Jan 2005 15:09:04 -0800
- To: <public-ws-addressing@w3.org>
Updated proposal for issues 34, 35, and this new one on URNs. I'm sure the editors will find ways to improve the text :-). ---------------------------------------------------------------- 3.2 Default Action Pattern for WSDL 1.1 In the absence of the wsa:Action attribute in a WSDL 1.1 document, the following pattern is used to construct a default action for inputs and outputs. The general form of an action URI for an input or output message is as follows: Example 3-2. @@@ [target namespace][delimiter][port type name][delimiter][input|output name] The general form of an action URI for a fault message is as follows: Example 3-2. @@@ [target namespace][delimiter][port type name][delimiter][operation name]Fault:[fault name] [target namespace] is the target namespace (/definition/@targetNamespace). If [target namespace] ends with a "/" an additional "/" is not added. [delimiter] is ":" when the [target namespace] is a URN (see RFC2414), otherwise "/". Note that for URI schemes other than URNs which aren't path-based (i.e. outlaw the "/" character), the default action value may not conform to the rules of the URI scheme. Authors are advised to specify explicit values in the WSDL in this case. [port type name] is the name of the port type (/definition/portType/@name). [input|output name] is the name of the element as defined in Section 2.4.5 of WSDL 1.1. [fault name] is the name of the fault message (/definition/portType/operation/fault/@name). ---------------------------------------------------------------- 3.x Default Action Pattern for WSDL 2.0 In the absence of the wsa:Action attribute in a WSDL 2.0 document, the following pattern is used to construct a default action for inputs and outputs. The general form of an action URI for an input or output message is as follows: Example 3-2. @@@ [target namespace][delimiter][interface name][delimiter][operation][direction token] The general form of an action URI for a fault message is as follows: Example 3-2. @@@ [target namespace][delimiter][interface name][delimiter][fault name]Fault The components of these patterns are defined below: [target namespace] is the {target namespace} of the interface (/description/@targetNamespace). If {target namespace} ends with a "/" an additional "/" is not added. [delimiter] is as defined in section 3.2 above. [interface name] is the {name} of the interface. [operation name] is the {name} of the operation. [fault name] is the {name} of the Interface Fault. [direction token] is: Empty ("") where the operation's {message exchange pattern} is 'http://www.w3.org/@@@@/@@/wsdl/in-only', 'http://www.w3.org/@@@@/@@/wsdl/robust-in-only', 'http://www.w3.org/@@@@/@@/wsdl/out-only', or 'http://www.w3.org/@@@@/@@/wsdl/robust-out-only'. "Request" where the operation's {message exchange pattern} is 'http://www.w3.org/@@@@/@@/wsdl/in-out' or 'http://www.w3.org/@@@@/@@/wsdl/in-optional-out' and the message reference's {message label} = 'in' "Solicit" where the operation's {message exchange pattern} is 'http://www.w3.org/@@@@/@@/wsdl/out-in' or 'http://www.w3.org/@@@@/@@/wsdl/out-optional-in' and the message reference's {message label} = 'out' "Response" where the operation's {message exchange pattern} is 'http://www.w3.org/@@@@/@@/wsdl/in-out' or 'http://www.w3.org/@@@@/@@/wsdl/in-optional-out' and the message reference's {message label} = 'out', "Response" where the operation's {message exchange pattern} is 'http://www.w3.org/@@@@/@@/wsdl/out-in', or 'http://www.w3.org/@@@@/@@/wsdl/out-optional-in' and the message reference's {message label} = 'in' {message label} where the {message exchange pattern} is not one of the MEP URIs defined in WSDL 2.0 Part 2. > -----Original Message----- > From: public-ws-addressing-request@w3.org [mailto:public-ws- > addressing-request@w3.org] On Behalf Of Jonathan Marsh > Sent: Friday, January 14, 2005 12:37 PM > To: public-ws-addressing@w3.org > Subject: NEW ISSUE: Action defaults don't work with URNs. > > > There is a potential problem in the Action defaulting algorithm we've > selected. It works great for http: URIs as the namespace, and > continues > the http hierarchy by adding new path components separated by slashes. > > However, slash isn't allowed as a path component by all URI schemes. > Notably, URNs don't allow slash as far as I can tell, and you often > see > paths delimited by ":" instead. If a URN is used as a targetNamespace > (which seems reasonable, though we can argue whether this trend will > wither or flourish), you might end up with a default Action like: > > urn:com:microsoft:schemas:thisWsdl/dohicky/sendMoneyRequest > > which is a bad URN. > > Some possible solutions: > > a) Note in the spec that the default algorithm doesn't work for > urn: targetNamespaces, and an explicit value must be specified > in this case. > b) Redo the algorithm replacing \ with ; (or similar) that is > acceptable to both http and urn URI schemes. > c) Adjust the default algorithm to use : as a separator for urns, > retain \ for all other URI schemes. > > My two cents is that option c is the most complex to spec and to > implement, but the most user-friendly in that you get a clean default > when using http: (the most common case today), but you don't silently > get garbage when using urn:. > > URI: http://www.ietf.org/rfc/rfc2396.txt > URN: http://www.ietf.org/rfc/rfc2141.txt >
Received on Monday, 17 January 2005 23:09:45 UTC