Here is a strawman proposal for addressing the 2nd subissue [1] in
issue i017:
If WS-Addressing requires a distinct value for the [action] property
for all in or out messages within an interface component then it is
sufficient to indicate the use of WS-Addressing in the WSDL
(specifically the interface component) to satisfy the operation name
mapping requirement [2]. This is already an issue (issue 21). IOW, if
there is a requirement in the WSDL binding [3] that [action] properties
for every operations within an interface is distinct then this subissue
is automatically resolved and we don't have to do anything here.
If WS-Addressing does not have a requirement for a distinct value for
the [action] property for all in or out messages within an interface,
then an extension/WSDL feature can be used to indicate that a specific
WSDL interface does have this distinct characteristic (for the [action]
property. I.e., the extension/feature says that the [action] property
is distinct and can be utilized by implementation to determine which
operation is being "invoked" within an interface. This removes the
ambiguity as to which WSDL operation is being "invoked" by a particular
message (when two or more in/out messages within an interface have
Message Reference components with a value of "#none" or "#any" or
QNames that refer to the same global element decl). Such a WSDL
interface may declare that the [action] property is used to satisfy the
Operation name mapping requirement (per [2]) via WSDL extensibility
element or a feature:
Please note that to satisfy the operation name mapping requirement [2]
the extensibility element must be specified along with the
wsdl:required attribute with the value 'true'.
In the above example, since wsa:Action attr is not used the default
rules for the [action] property kick in. The default rules generate a
distinct value for all the messages within the interface and therefore
the requirement of wsa:UniqueAction extensibility element (and [2]) are
satisfied.