I like to solve application problems using the Web (statelessness, hypermedia, self-descriptive representations, and uniform interfaces) to produce an asymptotically tight bound solution!

Thursday, May 28, 2009

CMIS XV: Perils of embedding entry inside entry

Recent updates to CMIS AtomPub binding suggest embedding atom:entry directly under atom:entry for in-lining hierarchically related entries. There are two bad consequences of this:
  1. There is no way to differentiate an entry that has no child entries from the case where the server did not inline the nested entries. 
  2. There is no context in the inlined entry as to its relation to the parent entry. Conversely, it is wrong to appropriate the use of atom:entry inside atom:entry entirely for the purpose of expressing hierarchical relation, because several other possibilities for opportunistic in-ling exist, e.g., replies and via.
  3. The repetition of multiple entries inside an entry means that the benefits of atom:feed as a listing container are lost. 

3 comments:

Julian Reschke said...

1) There is if you use a container element.

2) see 1)

3) Could you please elaborate? Which benefits? And how are they lost?

Nikunj Mehta said...

Well, then you are basically advocating the approach I proposed - to use a container element with @rel. Does that sound that different from a link element with nested atom:feed or atom:entry?

Summary metadata about the feed such as author, updated and pagination are a few to list as benefits of feed. Ask yourself - why do you use atom:feed instead of some:container?

Hadrien said...

Agree with Nikunj: atom:feed is the container, if you'd like to contain entries in an entry, then use an inline atom:feed.

Creative Commons License
This work is licensed under a Creative Commons Attribution-Share Alike 3.0 United States License. All materials on this blog are either the original work of its owner or used with acknowledgement of the copyright owner. 

About Me

My Photo
I have been an avid student of the evolution of the Web and its application to business problems.

Blog Archive

Label Cloud