2.2.6.2.1 Entity Set (as an Atom Feed Element)

An EntitySet or collection of entities is represented as an atom:feed element, as specified in [RFC4287] section 4.1.1. This section adds constraints to the formatting rules defined in AtomPub for atom:feed elements.

An Atom-formatted EntitySet or collection of entities has to adhere to the rules that are defined in this section.

atom:feedElement

The atom:feed element is specified in [RFC4287] section 4.1.1

atom:feedSubelements

The atom:id element, as specified in [RFC4287] section 4.2.6, MUST contain the URI that identifies the EntitySet that is represented by the parent atom:feed element. For example, assuming the parent element represented the Customers EntitySet (as described in Appendix A: Sample Entity Data Model and CSDL Document (section 6)), the value of this element would be http://host/service.svc/Customers.

The atom:title element, as specified in [RFC4287] section 4.2.14, MAY contain the name of the EntitySet that is represented by the parent atom:feed element. The set name MAY be qualified with the name of the Entity Data Model (EDM) namespace in which it is defined, as specified in [MC-CSDL]. If the URI in the sibling atom:id element is of the same form as URI6, as defined in Resource Path: Semantics (section 2.2.3.5) (last path segment is a NavigationProperty) and the NavigationProperty identifies an EntitySet, then the atom:title element MAY contain the name of the NavigationProperty instead of the name of the EntitySet that is identified by the property.

An atom:link element, as specified in [RFC4287] section 4.2.7, with a rel="self" attribute MUST contain an href attribute with a value equal to the URI used to identify the set that the parent atom:feed element represents. When used in HTTP responses, this URI MUST be equal to the associated HTTP request URI. When used in HTTP deep insert requests, this URI MUST identify a related collection of entities (identified by a NavigationProperty on the base EntityType of the EntitySet that is identified by the request URI) into which the deep/related new entities will be inserted, as specified in InsertEntity Request (section 2.2.7.1.1).

An atom:entry element, as specified in [RFC4287] section 4.1.2, within the atom:feed element, is formatted as specified in Entity Type (as an Atom Entry Element) (section 2.2.6.2.2).

In response payloads only, if the server does not include an atom:entry element as a child element of the atom:feed element for every entity in the collection of entities that is identified by the associated URI, the atom:feed element represents a partial collection as defined in AtomPub [RFC5023] section 10.1. The href attribute of the atom:linkrel="next" element that is mandated by AtomPub [RFC5023] section 10.1 for such partial representations MUST have a value equal to the URI that identifies the next partial set of entities from the originally identified complete set. Such a URI SHOULD include a Skip Token system query option (section 2.2.3.6.1.9) to indicate that the URI addresses the next (after the partial set represented by the parent atom:feed element) partial set of entities.

Note   The inclusion of an atom:linkrel="next" element in a response payload has protocol versioning implications as described in Executing a Received RetrieveValue Request (section 3.2.5.4.2).