Subject: PaceProfileAttribute

From: Paul Hoffman <[email-masked]>
Date: Mon, 7 Feb 2005 14:47:43 -0800

-1 because it doesn't feel like it belongs in the core. That is, when 
more developers have real profiles that they want to differentiate 
from the atom core, adding a @profile attribute seems like a good 
extension.

--Paul Hoffman, Director
--Internet Mail Consortium

---

From: James M Snell <[email-masked]>
Date: Mon, 07 Feb 2005 15:19:38 -0800

Paul Hoffman wrote:
 > more developers have real profiles that they want to differentiate from
 > the atom core, adding a @profile attribute seems like a good extension.

Hmm. the challenge with this assertion is that the atom spec as it 
stands today, does not give someone the option of being able to override 
the metadata containment requirements as specified by the core.  Nor 
does it give any indication how such redefinition should occur.  This 
spec does not introduce any other profiles, it just provides the 
framework under which profiles can be created and cooks that into the 
core so that doing so can be done in a consistent, reliable manner.

Further, one would need to consider how a @profile differs from a 
@version and the namespace attribute, etc.  This proposal replaces 
@version completely with the @profile mechanism.  The namespace is used 
to identify the semantics of the individual elements themselves while 
the profile is used to identify the containment requirements.  As the 
spec stands currently, the relationship between atom 
namespace+@version+containment requirements+element semantics is muddled 
up.  Is it possible for someone to modify containment requirements for a 
specific use case while adhering to the same atom namespace?  The 
@version attribute is defined such that it relates to Atom spec version. 
      Does @version reflect element semantics or containment 
requirements or both?  This proposal says, namespace==element semantics, 
@profile=containment requirements and provides a clear, consistent 
approach to handling different/multiple @profiles.  That is a far cry 
from the minimal and far-from-helpful "atom:feed elements MUST have a 
"version" attribute whose content indicates the version of the Atom 
specification that the feed conforms to.  The content of this attribute 
is unstructured text."

Also, as others have pointed out, the profile attribute mechanism could 
be used to handle cases such as defining the requirements for an archive 
as opposed to creating a new top level archive element.

Bottom line: while @profile COULD be added as an extension, I think it 
is much more valuable in the core as a replacement to @version.

- James M Snell