Rationale
The introspection document is a little suboptimal. It's hard to tell what to show by default in a client, because the workspace doesn't a have a feed associated with it. What we need is outline format, but one that doesn't imply the outline continues at a remote URL when one is specified. XOXO fits the bill nicely, and inherits mustIgnore rules from XHTML Modularization (see UA conformance rules 4-6).
Here's a what Cosimo tries to do with the current introspection doc (gregorio-09 implementations have an ad-hoc link list):
or, on Ubuntu Linux:
or, Windows if you must:
XOXO works better.
Status: Open
Edit this Page! Really.
Proposal
Replace Section 8 as follows, with the caveat that the editors may rename any field:
8 Service Outline
In order for authoring to commence, a client must first discover the capabilities and locations of collections offered.
8.1 Service Outline Document
The Service Outline Document is a XOXO outline [XOXO]. The top level list items describe distinct groups of resources offered by the service. For example, a user with an account containing three blogs would have 3 items at the top of the outline. There is no requirement that servers support multiple top-level items, and a collection may appear in more than one location in the document.
Clients can read entries contained in a collection by visiting an the URI located in the 'href' attribute of a XOXO outline item. This URI also serves as the location a client POSTs new entries to. The 'rel' attribute of the XHTML anchor element conveys the nature of a collection's member resources. This specification defines two initial values for the 'rel' attribute:
-
entry
-
generic
These values correspond to the two types of collection defined by this specification. Extensibility for 'rel' values is specified in XHTML Modularization [XHTMLMOD].
An example Service Outline:
<ul class="xoxo"> <li> <a href="/app/collection.py?id=1&type=entries" rel="entry" type="application/atom+xml">Main Blog</a> <ul> <li><a href="/app/collection.py?id=2&type=generic" rel="generic" type="application/atom+xml">My Stuff2</a> </li> </ul> </li> <li> <a href="/app/collection.py?id=3&type=entries" rel="entry" type="application/atom+xml">Side Bar Blog</a> <ul> <li><a href="/app/collection.py?id=4&type=generic" rel="generic" type="application/atom+xml">My Stuff4</a> </li> </ul> </li> <li> <a href="/app/collection.py?id=5&type=entries" rel="entry" type="application/atom+xml">A Third Blog</a> <ul> <li> <a href="/app/collection.py?id=6&type=generic" rel="generic" type="application/atom+xml">My Stuff6</a> </li> </ul> </li> </ul>