Section on adding model references to inputs and outputs

Proposal - Adding section on model reference on input/output elements

1. Motivation
There are several use cases that constitutes scenarios where it is
desirable to add the model reference entry in the input/output (fault
in WSDL 1.1 case) rather than pushing it to the schema (or message in
the case of WSDL 1.1) and get a similar behavior to an annotated
element/type.

 I. When schema reuse is desired where a particular schema
element/type is used to refer to semantically different operations.

In fact reuse this is the very reason why types are seperated from the
operation inputs and outputs in the WSDL. As an example consider the
following (very much valid in real world) scenario.
[http://cs.uga.edu/~ranabahu/sa-wsdl/example/reused-output.wsdl]
 The WSDL describes a purchase order processing  scenario where  one
schema element that describes the acknowledgement. However the meaning
of acknowledgement to the order information request is different (in
meaning) to the place order request (which boils down to two different
model references).
 This scenario can be extended to faults where it is quite common to
have a single message that denotes a fault for a number of operations.
The same argument can be applied in this case also.

II. When third party schema's are used where the schema is included
rather than copied over.

Here the ability to add annotations to the schema is limited or not
possible at all. It would be convenient to add annotations to the
input/output and fault so that semantics that are relevant in the
scope of this service can be attached, even when there is no control
over the schema.

Note that there are not-so-elegant workarounds for both of these situations.
I. put multiple annotations in the reused element/message -  this
might make things confusing and a non standard URL scheme may be
needed to resolve which annotation belongs to which operation.
II. Copy schema elements  - This defeats the purpose of reuse and may
also introduce inconsistancies.

A similar text to the following may be needed to make things clear.

"In order to define semantics that apply to inputs and outputs of an
operation,  input and output elements can also be annotated with the
model reference. This is equivalent to adding model references to the
relevant schema element and should be interpreted accordingly. If the
element has an annotation already, in the scope of this operation it
is considered to have both the input/output level annotation and the
element specific annotations."

Thank you
-- 
Ajith Ranabahu

Received on Monday, 29 January 2007 08:30:42 UTC