Abstract
Limit the alternate attribute to presisely one of two values: related and alternate, with alternate as the default. Additionally, make the link attribute optional.
Status
Open
Related and Conflicting Proposals
Numerous, including PaceLinkPurpose, PaceReplaceLinkElement
See LinkReferences for a comparison matrix of link mechanisms.
Rationale
By far, "alternate" is the most common value for the rel attribute on the link tag, and it doesn't make sense to make the type attribute required as, by specification, it is advisory only.
This should reduce the most common use case to:
-
<link href="uri"/>
Proposal
Change the following two sections in draft-ietf-atompub-format-00:
3.4.1 "rel" Attribute
-
The "rel" attribute indicates the type of relationship that the link represents. Link constructs MAY have a rel attribute, whose value MUST be a string, and MUST be one of the following values: "alternate", "related".
If the "rel" attribute is not present, the link element MUST be interpreted as if the value "alternate" had been supplied.
3.4.2 "type" Attribute
-
The "type" attribute indicates an advisory media type; it MAY be used as a hint to determine the type of the representation which should be returned when the URI in the href attribute is dereferenced. Note that the type attribute does not override the actual media type returned with the representation.
Link constructs MAY have a type attribute, whose value MUST be a registered media type [RFC2045].
Impacts
Impacts: existing producers may want to take advantage of the new defaults. Consumers will have to deal appropriately with the new defaults.
Notes
SamRuby: as this proposal severely constrains the values of this rel attribute, it needs to be coupled with another proposal, such as PaceServiceElement, to replace this functionality.
See also
The Dangers of Overspecification.
