UserPreferences

PaceReplaceLinkElement


Abstract

Replace the link element with several different elements, named for the various proposed link/@rel values.

For example, this would convert:

<link rel="alternate" type="text/html" href="http://example.org/001.html"/>

to:

<alternate type="text/html" href="http://example.org/001.html"/>

LinkReferences

Status

Open

Rationale

In the current specification, the type of relationship a Link Constructs defines is controller by an attribute named "rel", inherited from the HTML link construct. This causes many problems:

  1. No extension mechanism

  2. Inconsistent with Date, Person and Content constructs, which all distinguish semantics using the element name.

  3. Typing based on attribute value is bad practice "[WWW]"The whole approach of "bottom-typing"... leaves a strongly-typed guy like me with the whillies""

See LinkReferences for a comparison matrix of link mechanisms.

Proposal

Remove:

3.4.1 "rel" Attribute

Replace 4.4 "atom:link" Element with sections detailing rel values defined in atom-protocol-00 3.4.1.

atom:alternate

The "atom:alternate" element is a Link construct that points to an alternate representation of the containing resource.

atom:feed elements MUST contain at least one atom:alternate element. atom:feed elements MUST NOT contain more than one atom:alternate element that has the same type attribute value.

atom:start

The "atom:start" element is a Link construct that points to the first feed in a linear sequence of entries.

atom:next

The "atom:next" element is a Link construct that points to the next N entries in a linear sequence of entries.

atom:prev

The "atom:prev" element is a Link construct that points to the previous N entries in a linear sequence of entries.

atom:service-edit

The "atom:service-edit" element is a Link construct that contains a URI that can be used to edit a representation of the referred resource.

atom:service-post

The "atom:service-post" element is a Link construct that contains a URI that can be used to create new resources.

atom:service-feed

The "atom:service-post" element is a Link construct that points to the starting point for navigating content and services..

Replace 4.13.2 "atom:link" Element with a similar list, eg:

atom:alternate

The "atom:alternate" element is a Link construct that points to an alternate representation of the containing resource.

atom:entry elements MUST contain at least one atom:alternate element. atom:entry elements MUST NOT contain more than one atom:alternate element that has the same type attribute value.

Impacts

Some other proposals (eg PaceLinkPurpose) will no longer be relevant. There will not be a defined way to extract all Link Constructs from atom document.

Notes

Currently the meanings of the link@rel values are not currently defined, thus it was not possible to include within the proposal spec text for each of the new elements created by the proposal.


CategoryProposals