More on doc/literal/bare - David expresses his concern

David (no known site) has commented on a couple of my posts about doc/literal/bare. His most recent comment expressed his preference for bare services, but also his concern that it was hard to ensure interop. As I pointed out in this footnote, any doc/lit/wrapped service can be a doc/lit/bare service - it's only a difference at the tools level (in ASMX it's controlled by the name of the wsdl:message/wsdl:part/@name attribute). However, it is also possible to write bare services that are not easily mapped to wrapped services, and that's the heart of David's issue. If you care about WS-I Basic Profile compliance as a way to help ensure interoperability, then you have to be aware that, using doc/literal/bare, you have to:

1) Restrict your services to at most 1 input argument and at most 1 output argument (return value), so that there is only one child of body in each message.

2) Make sure that you only use each argument type once, so that there is a unique mapping from the qname of the one child of body to an operation in your portType.

If you follow those rules, you'll stay WS-I BP compliant, and you still get the other benefits of using the bare programming model. But, as David observes: be warned that if you do something else, it would be easy to become WS-I BP non-compliant.


Posted Jul 02 2004, 09:34 AM by tim-ewald

Add a Comment

(required)  
(optional)
(required)  
Remember Me?