Brian Moseley wrote:
On 9/25/07, James M Snell <jasnell@gmail.com> wrote:
  
No, but that's a very application specific thing to do; if you're sure
others will be able to figure out what you're doing, then it's fine.
    

so is nesting a collection inside an entry. either way, the writer of
a client will have to be told that the feed includes something
non-standard. dan's suggestion makes it explicit.
  
Well this is part of my problem with the whole "RESTful services don't need a description language thing". It'd be very nice from a machine 2 machine point of view if I could have some metadata inside my <collection> which goes beyond <accept>, because for anything beyond well understood content types like html, images, etc, you're stuck.  For instance, I may know that my collection accepts "application/atom+xml;type=entry", but:

1.How do I know what types of XML content my <entry> might hold. I.e. does it contain a <customerInfo> document of the type application/vnd.acme.customer+xml? It seems that if you aren't using media entries, you have to have the accept set to "application/atom+xml;type=entry", no?
1a. Should <customerInfo> be included as a direct child of <entry> or <content>?
1b. If the later is valid, I can set a contentType on <content>. Then could I also do <accept>application/vnd.acme.customer+xml</accept?

2. How do I relate the mime type to the schema so that the other machine can browse to it?

Ideally I'd like to see something like:

<workspace>
<collection>
  <description mimeType="application/vnd.acme.customer+xml" descriptionType="http://foo.bar/relaxNg" href="blah.rng"/>
</collection>
</workspace>

dan, what about a rel or name attribute on the collections to
distinguish them apart?

<atom:entry>
...
<app:collection rel="purchaseOrders" .../>
<app:collection rel="contacts" .../
</atom:entry>
  
That could work. I didn't realize that was legal! (although legal != standard ;-))

- Dan
-- 
Dan Diephouse
MuleSource
http://mulesource.com | http://netzooid.com/blog