What is the purpose of #none?

While I was reading the primer on service references, I came across an
interesting example in our primer. Apart from the fact that primer talks
about both Service and Endpoint references in Section 7.9 and the reader
is baffled about the differences here (endpoint references are not
introduced anywhere before) which is not the purpose of this email,
example 7.14 is particularly interesting: 

<interface name="reservationDetailsInterface"> 
    <operation name="retrieve"
pattern="http://www.w3.org/2005/05/wsdl/in-out">
         <input messageLabel="In" element="#none" /> 
         <output messageLabel="Out"
element="wdetails:reservationDetails" /> 
   </operation> 
...
Check out the binding: 
<binding name="reservationDetailsSOAPBinding" 
              interface="tns:reservationDetailsInterface"    
              type="http://www.w3.org/2005/05/wsdl/soap"
wsoap:protocol="http://www.w3.org/2003/05/soap/bindings/HTTP"> 
            <operation ref="tns:retrieve"
wsoap:mep="http://www.w3.org/2003/05/soap/mep/request-response" /> 
           <operation ref="tns:update"
wsoap:mep="http://www.w3.org/2003/05/soap/mep/request-response" /> 
</binding> 

The intent here appears to be that a "retrieve" action will cause
reservation details to be sent to the caller when an empty message is
received. According to our spec, this is perfectly legitimate, because
we allow empty messages, hence empty SOAP bodies to act as a trigger for
the response message. This pattern here seems like a poor man's SOAP
response MEP,  which is modeled on top of SOAP request-response MEP by
passing the request message using WSDL request-response MEP. Aren't we
confused yet ? ;-) 

I am wondering why we wanted to allow #none. It seems the whole purpose
is to paypass a designed MEP to masquarade as another. Can someone
refresh my memory why we wanted to allow element content to be empty
again? (As a side comment, can anyone truly believe that this kind of a
WSDL definition will be usable by a service provider without a mandatory
SOAP Action header  if many pseudo-output MEPs  similar to the one
quoted above were to be assigned to the same endpoint? )

Do we really want to promote this usecase in the Primer? 

End-Of-Rant,

--umit

Received on Wednesday, 11 May 2005 01:47:00 UTC