Abstract
This proposal defines a new element to be used in place of link[@rel="service.*"].
Status
Open
Author: AntoneRoundy
Related and Conflicting Proposals
Rationale
If PaceLinkPurpose is adopted, then link[@rel="service.post"] and link[@rel="service.edit"] will be clearly outside of the boundaries set for the link element (neither is an appropriate value for a clickable link), and thus will need a new element. Even if PaceLinkPurpose is not adopted, moving this logical group of @rel values to their own element would help to avoid excessive overloading of the link element.
Key questions
-
Are the element and attribute names proposed below what we want?
-
Is service[@name="feed"] needed, or could link[@rel="start"] be used in it's place?
-
If alternative versions of a feed exist (for example, full content vs. summaries only), will this proposal need to change to accomodate that? (Perhaps only if <service> is to be used within a site's introspection file).
-
What additional values might we want for @name?
Proposal
Remove the service.edit, service.post and service.feed portions of section 5.4.1 rel of the Atom API specification.
Insert the following under section 4 The "atom:feed" Element:
4.X "atom:service" Element
-
The "atom:service" element conveys the URI of a service associated with the feed. A feed MAY contain a atom:service element with each of the values enumerated for the name attribute, but MUST NOT contain more than one for each name value.
atom:service elements MUST be empty.
atom:service elements have the following attributes:
4.X.1 name Attribute
-
The "name" attribute names the service pointed to by this element. The value of this attribute is case insensitive. atom:service elements MUST have a name attribute, whose values MUST be one of the following:
-
edit
-
The URI given in the href attribute is used to edit a representation of the referred resource.
-
The URI in the href attribute is used to create new resources.
-
The URI given in the href attribute is a starting point for navigating content and services.
-
The URI given in the href attribute points to the website associated with the feed.
-
The URI given in the href attribute points to the introspection file for the feed. Note that a feed might contain only service[@name="introspection"], with each of the other service elements appearing only in the introspection file.
4.X.2 href Attribute
-
The "href" attribute contains the a URI pointing to the endpoint of the service named by the name attribute. atom:service elements MUST have an href attribute, whose value MUST be a URI.
xml:base processing MUST be applied to the href attribute.
Impacts
Servers and client currently implementing link/@rel="service.*" would need to use the new element to access the same information.
Notes
If the link element is abolished and link constructs are to be identified by the existance of an href attribute, href here should be renamed to something like "uri".
Position Statements
This is not a place for discussion. If making a statement beyond simply listing your name, please be extremely brief. Link to a longer message in the mail list archive if needed.