should binding/operation/infault|outfault@messageReference be opt ional?

In the current draft, the attribute interface/operation/infault|outfault@messageReference is optional, the following rules are provided for determining its value:

"The actual value of the messageReference attribute information item if any; otherwise the {message reference} property of the message with the same {direction} from the {message exchange pattern} of the Interface Operation component, provided there is exactly one such message and the fault pattern of the {message exchange pattern} is fault-replaces-message; otherwise the {message reference} property of the message with the opposite {direction}, provided there is exactly one such message and the fault pattern is message-triggers-fault; otherwise empty. "

However, the binding/operation/infault|outfault@messageReference is required, and leave the two sections somehow not consistent. The syntax for fault references is something like,

<definitions>
  <interface>
    <operation>
      <infault
            name="xs:NCName"
            messageReference="xs:NCName"?
            message="xs:QName"?
        <documentation />?
      </infault>*
      <outfault
            name="xs:NCName"
            messageReference="xs:NCName"?
            message="xs:QName"?
        <documentation />?
      </outfault>*
    </operation>
  </interface>

<binding>
    <operation>
      <infault
            name="xs:NCName"
            messageReference="xs:NCName" >
        <documentation />?
      </infault>
      <outfault
            name="xs:NCName"
            messageReference="xs:NCName" >
        <documentation />?
      </outfault>
    </operation>
  </binding>

</definitions>

I believe the intention of making messageReference in interface level optional is to make simple case very simple whereas the intention of requiring messageReference in binding fault is to use the combination of @name and @messageReference to uniquely identify a corresponding interface fault. But to be consistent, I would say we should either make the interface/operation/infault|outfault@messageReference required OR make binding/operation/infault|outfault@messageReference optional and specify the rules for determining its value. I would prefer the later to keep simple cases simple (for wsdl authors).

Make senses?

Best Regards,
Kevin
  

Received on Monday, 10 November 2003 14:37:13 UTC