Adding binding infault/outfault components (LC55)

I had an action item to to write up the addition of infault and outfault
at the binding level plus modifications of the component model. (LC55)

Define a Binding Fault Reference component with the following properties:

  {fault reference} REQUIRED - A Fault Reference component.
  {features} OPTIONAL - A set of Feature components.
  {properties} OPTIONAL - A set of Property components.

The pseudo-schema for a binding operation would be updated to look like this:

    <operation ref="xs:QName" >
      <documentation />?

      <input messageLabel="xs:NCName"? >
        <documentation />?

        <feature ... />*

        <property ... />*
      </input>*

      <output messageLabel="xs:NCName"? >
        <documentation />?

        <feature ... />*

        <property ... />*
      </output>*

      <infault ref="xs:QName" messageLabel="xs:NCName"?>
        <documentation />?

        <feature ... />*

        <property ... />*
      </infault>*

      <outfault ref="xs:QName" messageLabel="xs:NCName"?>
        <documentation />?

        <feature ... />*

        <property ... />*
      </outfault>*

      <feature ... />*

      <property ... />*
    </operation>*

The mapping of a binding infault

      <infault ref="xs:QName" messageLabel="xs:NCName"?>
        <documentation />?

        <feature ... />*

        <property ... />*
      </infault>*

to a Binding Fault Reference component BFR would be as follows:

  (the notation C.{P} denotes property {P} of component C)

  1. start with the Binding Operation BO;
  2. BO.{operation reference} is an Interface Operation component I;
  3. I.{fault references} is a set of Fault Reference components;
  4. the value of BFR.{fault reference} is the unique element FR of I.{fault references} such that
       a. FR.{fault reference}.{name} == the value of the @ref attribute of wsdl:infault
       b. FR.{message label} == the value of the @message label of wsdl:infault (*)
       c. FR.{direction} == 'in'

(*) For consistency with the mapping rules for the Fault Reference component, the @message
attribute is optional provided that there is only one message in the MEP used by I whose
corresponding fault has the 'in' direction (of course, taking the fault rule used by the
MEP into account).

Similarly for a binding outfault, with 'out' in place of 'in'.

In part 3, we'd extend the pseudo-schema so as to allow wsoap:module inside
the binding infault/outfault elements:

    <operation ref="xs:QName" 
               whttp:location="xs:anyURI"??
               whttp:transferCodingDefault="xs:string"?? >
               wsoap:mep="xs:anyURI"?
               wsoap:action="xs:anyURI"? >
      <documentation />?

      <wsoap:module ... />*

      <input messageLabel="xs:NCName"?
             whttp:transferCoding="xs:string"?? >
        <documentation />?
        <wsoap:module ... />*
        <feature ... />*
        <property ... />*
      </input>*

      <output messageLabel="xs:NCName"?
             whttp:transferCoding="xs:string"?? >
        <documentation />?
        <wsoap:module ... />*
        <feature ... />*
        <property ... />*
      </output>*

      <infault ref="xs:QName" messageLabel="xs:NCName"?
             whttp:transferCoding="xs:string"?? >
        <documentation />?
        <wsoap:module ... />*
        <feature ... />*
        <property ... />*
      </infault>*

      <outfault ref="xs:QName" messageLabel="xs:NCName"?
             whttp:transferCoding="xs:string"?? >
        <documentation />?
        <wsoap:module ... />*
        <feature ... />*
        <property ... />*
      </outfault>*

      <feature ... />*
      <property ... />*
    </operation>*

Section 2.6.2 would be amended so that the {soap modules} property becomes
applicable to Binding Fault Reference components.

Roberto

-- 
Roberto Chinnici
Java Web Services
Sun Microsystems, Inc.
roberto.chinnici@sun.com

Received on Wednesday, 17 November 2004 02:46:55 UTC