Define an attribute to be used by extensions to mark their elements as following the rules of a Construct defined in the Atom specification.
If an Atom consumer knows that an extension element follows the rules defined for a Construct that it already knows about from the Atom core specification, it may be able to perform some appropriate processing on it without knowing everything about the element.
@atom:construct would only need to be included in feeds till an extension element had become popular enough that most aggregators know what kind of Construct it was without the hint.
Add the following...at an appropriate point in the Atom format specification:
X.X.X. atom:construct attribute This attribute MAY be used by extension elements to indicate that they follow the rules defined in this specification for some type of Construct. The value of this attribute MUST be one of "link", "date", or "person". The value MUST be lowercase. Elements containing this attribute MUST include all of the attributes and child content required by this specification for the named Construct type. They MUST NOT contain additional attributes or child content which is required in order to process the element in an acceptable manner. Example: The following indicates that myext:mylink is a Link Construct, as defined by this specification: <myext:mylink atom:construct="link" rel="my-rel-value" href="http://myserver.com/" />
If @rel is required for Link Constructs, and the list of acceptable values is closed, an extension Link Construct wouldn't be able to add @rel values. If this proposal is adopted and we decide to close the @rel value list, we should close this @rel value list for the atom:link element, but not for Link Constructs.