interface/operation/{infault,outfault}/@name proposal

Here is the proposal the WG approved during the face-to-face meeting
this morning.

 

Language binding requirements

*	Allow deserializing faults to exception types in a programming
language.
*	If a fault occurs in > 1 operation, map to the same exception
type.

 

SOAP binding requirements

*	Specify SOAP faults that have code/subcode with optional detail.

 

Other requirements

*	Allow fault to occur in both an infault and an outfault.
*	Minimize redundant information to minimize risk of error.

 

<interface ... >

  <operation ...>

    <input messageReference='xs:NCName' // maps to field in pattern

           body='xs:QName'

           ... />

    <outfault name='xs:NCName'

              // target for binding/operation/outfault/@name

              // if used twice, means the same fault

              messageReference='xs:NCName'

              // maps to interface/operation/{input,output}/@messageRef

              // may match other faults in interface w/ same @name

              detail='xs:QName'?

              // must match other faults in interface w/ same @name

              ... />

  </operation>

</interface>

 

<binding ... >

  <wsoap:FaultDefault name='xs:NCName' >

    // rollup like other operation-specific information

    // good for all instances of @name

    // explicitly does not include @messageRef

    <wsoap:Code> ... </wsoap:Code>

  </wsoap:FaultDefault>

  <operation ... >

    <outfault name='xs:NCName'

              messageReference='xs:NCName'

              // required because same @name can occur within an

              // interface/operation with different @messageRef

    >

      // overrides binding/wsoap:FaultDefault with same @name

      <wsoap:Code>

        <wsoap:Value>xs:QName</wsoap:Value>

        <wsoap:Subcode>

          <wsoap:Value>xs:QName</wsoap:Value>

          <wsoap:Subcode> ... </wsoap:Subcode>

        </wsoap:Subcode>

      </wsoap:Code>

      // Detail is just interface/operation/outfault/@detail

    </outfault>

  </operation>

</binding>

 

EOF

Received on Monday, 3 November 2003 15:41:42 UTC