Abstract
-
Assumes the Collection feed model described in PaceReworkProtocolModel
-
Eliminate -06 style introspection documents.
-
Redefines app:member-type as an extension to the atom:feed returned by GET'ing the Collection URI
-
Eliminates the need to explicitly call out media collections (all collections are media collections; collections MAY constrain their membership to specific member types; "entry collections" are media collections that constrain their membership to Atom Entry Documents.
-
Allows clients to POST whatever they want (valid or invalid). Who creates the value of atom:id is not material to the basic protocol. Whether or not the atom:entry is valid is not material to the basic protocol. The server will accept/reject whatever it chooses.
Status
Withdrawn
Rationale
Significantly simplifies the collection model in the core protocol. Workspaces and multiple collection introspection can safely be moved out to a separate I-D. No need to explicitly define "media collections"... there are just "Collections which can optionally constrain their member types".
Proposal
4 Collection Membership
APP Collection resources MAY choose to constrain the
types of member resources that may be contained within
the collection.
4.1 The 'app:member-type' extension element
Atom Feed Documents returned by Collection resources MAY
contain one 'app:member-type' elements whose content value
specifies the type of member resources contained by the
collection. The 'app:member-type' extension MUST only
appear as a child of the atom:feed element.
appMemberType = element app:member-type {
appCommonAttributes,
( 'entry' | extensionType )
}
extensionType = ( NMTOKEN | IRI | media-type)
<feed xmlns="http://www.w3.org/2005/Atom">
...
<app:member-type>entry</app:member-type>
</feed>
This specification defines the app:member-type value
'entry' to indicate a collection whose member resources
consist entirely of Atom Entry Documents.
If the 'app:member-type' element is not specified, the
membership type of a Collection is considered to be
unspecified.
If the 'app:member-type' element specifies a value that
is not understood by the client, the client MUST ignore
the 'app:member-type' and continue to operate as if the
element were not specified.
If a client sends a POST or PUT request to the server
containing a representation not supported by the Collection
resource, the server MAY return a status code of 415
("Unsupported Media Type").
