Action item (2003-10-30) Proposed Revised wording and splitting of rules for RPC

Per my action item dated 2003-10-30 (it was 2003-10-23, but not 
recorder), here is the proposed wording for the rpc rules splitting the 
rules into two buckets and incorporating the agreed items [1] on Oct 
23rd 2003 concall.

--umit

[1] http://lists.w3.org/Archives/Public/www-ws-desc/2003Oct/0058.html
2.3.1.1 Operation Style

An Interface Operation component contains a {style} property. This
property can only contain a URI value. However, it is OPTIONAL for
this property to have a value. If the {style} property has a value,
this implies specific rules that were used to define the {body}
properties of all {message reference}s within that component
designated by the URI.

The specification defines rules that MUST be followed when the style
attribute has one of the following values:

    *
      RPC Style (see 2.3.1.1.1 RPC Style
      <http://dev.w3.org/cvsweb/~checkout~/2002/ws/desc/wsdl12/wsdl12.html#RPCStyle>)

    *
      Set-Attribute Style (see 2.3.1.1.2 Set-Attribute Style
      <http://dev.w3.org/cvsweb/~checkout~/2002/ws/desc/wsdl12/wsdl12.html#AttrSetStyle>)

    *
      Get-Attribute Style (see 2.3.1.1.3 Get-Attribute Style
      <http://dev.w3.org/cvsweb/~checkout~/2002/ws/desc/wsdl12/wsdl12.html#AttrGetStyle>)


2.3.1.1.1 RPC Style

The RPC style is selected by assigning the Interface Operation 
component's {style} property the value 
http://www.w3.org/@@@@/@@/wsdl/style/rpc.

Use of this value states that XML Schema [XML Schema: Structures
<http://dev.w3.org/cvsweb/~checkout~/2002/ws/desc/wsdl12/wsdl12.html#XMLSchemaP1>]
was used to define the schemas of the {body} properties of all
{message reference} components of the Interface Operation
component. 

Those schemas MUST adhere to the following rules:

    * The content model of input and output {body} elements are defined
      using a complex type that contains a sequence from XML Schema.

    * The sequence MUST only contain elements. It MUST NOT contain other
      structures such as xs:choice.

    * The sequence MUST contain only local element children.

    * The child elements MAY contain the following attributes:
      xsi:Nillable, minOccurs and maxOccurs.

    * The localPart of input element's QName MUST be the same as the
      Interface operation component's name.

    * The localPart of the output element's QName is obtained by
      concatenating the name of the operation and the string value
      "Response", i.e. concat(operation/@name,"Response").

    * Input and output elements MUST all be in the same namespace.

    * The complex type that defines the body of an input or an output
      element MUST NOT contain any attributes.

    * If an element that appears as a child of an input element also
      appears as a child of an output element, it MUST be declared by
      using the same type.

Furhermore, the following rules MAY BE used to map between a message
and a signature of a remote procedure call. These rules are suggested
conventions to accomodate mapping. 

    
    * If an element is a child of the input element and an element
      with the same name is not a child of the output element, then it
      represents an input parameter. 

    * If an element is a child of the output element and an element
      with the same name is not a child of the input element, then it
      represents an output parameter.

    * If an element that occurs as a child element both in the input
      and the output elements, then it represents an in/out parameter.

    * Each element represents a single parameter irrespective of its
      cardinality.

    * The parameter order is specified by using the parameterOrder attribute. 

      [TBD: Needs parameterOrder to be specified in detail]

    * The return value is specified by the return attribute. 
      
      [TBD : Needs return attribute to be specified in detail and may be
       omitted pending action on the definition of parameterOrder] 

Received on Sunday, 2 November 2003 16:32:44 UTC