I've written up a WSDL 2.0 specification for Atom 0.3. It's based upon Randy's work on WSDL 1.1
My proposal for WSDL 2.0 Atom is at http://www.pacificspirit.com/Authoring/wsdl/atom3.1.wsdl2
I have a number of questions and comments about the WSDL 1.1 and WSDL 2.0 as a result:
WSDL 1.1 comments/questions:
- Shouldn't there be a WSDL 1.1 HTTP binding?
- I think the WSDL 1.1 action fields are wrong. The soap action should be the atom ns defined operations, not HTTP operations. Chris Ferris also suggested this. I've done what Chris suggested.
- Is the mime ns decl necessary?
- Why are the responses in "wrapped mode"? I removed the wrapper on the response.
WSDL 1.1 and WSDL 2.0 comments/questions:
- Why isn't the doc/lit style used? This has used the "wrapped" doc/lit. I'd prefer either straight up doc/lit, or even rpc/literal, rather than re-inventing rpc and calling it doc/literal.
- If wrapped is kept, and the responses are correctly unwrapped, then the wrappers can be updated. I've done so.
- Will SOAP 1.2 be supported?
- Does a service have to support both HTTP Transfer and SOAP/HTTP for the Post and EditURIs? The WSDL to describe that a given dynamic URI supports both bindings is hard to write. It seems harder to write server software as an HTTP POST could be one of: Atom:POST, SOAP:envelope (with one of POST/PUT/DELETE/GET), atom:PUT, atom:DELETE, depending upon whether http, soap, http wrapped are used.
- No mention of any binary data, can't remember if there was talk of adding binary data for images..
- There's no SOAP Faults content
- Is the "wrapped" HTTP supported? Where the POST could contain a DELETE or PUT?
WSDL 2.0 comments/questions:
- in WSDL 2.0, optional elements are allowed, so you could have the security element. I have left it in as I understand the reason for removing it from wsdl 1.1 was that headers can't be optional in wsdl 1.1
- There must be 2 interfaces: the SOAP and the HTTP interface because the interface has to know whether to put the "procedure" as the child or not. A classic leaky abstraction. I also observe the inability to separate soap from http in the abstract layer.
- There must be 3 http bindings and 3 http endpoints because there are 3 different HTTP uris - POST, ENTRY, and FEED. hmmm.
- The Atom WSDL 1.1 did not provide an HTTP binding, so any comparison of bindings of WSDL is misleading.
- In summary, there are 2 interfaces, 4 bindings, 2 services and 4 endpoints. This doesn't seem very simple from an HTTP perspective. The SOAP binding does look markedly simpler, especially if the ws-security is removed.