There are mistakes in the example of the SSDL core spec. This was due to a global replace that went bad 🙁 Here's how the <ssdl:protocols> element should have looked like in Example 1.
Thanks for Jacek for spotting this. I am collecting all the problems and posting them in an errata page. We can release updated version of the specs when we have more problems like this.
Now on to Jacek's points in his "SSDL mixed feelings" post. The introduction of the ssdl:messages and ssdl:protocols containers was intentional. A contract may have group of messages from different namespaces (note that an ssdl:messages element has a @targetNamespace attribute). This allows a contract to include groups of messages that have been defined in different namespaces. The same principle is true for ssdl:protocols where each ssdl:protocol may be defined in its own namespace, hence allowing different protocols to be part of the same contract.
Jacek also points out to the wrong message direction in the 'robust' MEPs. I'll fix that too. Thanks!
Now to Jacek's comments about the usage model... We believe in protocol-based integration. We care about the messaging behaviour of Web Services and not the semantics of abstractions like 'interfaces' and 'operations'. In a service-oriented environment, we only care about the messages that are exchanged and the protocols that are put in place. The semantics of the interactions are defined by the specifications of the contracts.
UPDATE: Links to errata pages fixed. Thanks Collin!
4 responses to “Mistakes in the example (SSDL core spec)”