3.13 SData Atom Extensions
The SData feeds and entries contain a few elements and attributes that extend the published standard Atom format. These elements and attributes are placed inside Atom feeds and entries, or they can replace the Atom payload. They support mechanisms such as relationship handling, concurrency handling and batching.
Together, these elements form the “SData Atom Extensions”, which are defined by the following namespaces:
http://schemas.sage.com/sdata/2008/1 http://schemas.sage.com/sdata/http/2008/1
SData namespace
The first set of extensions belong to the SData namespace (http://schemas.sage.com/sdata/2008/1).
Extension elements
Element | Inside | Value | Description | Compliance |
---|---|---|---|---|
payload | Atom entry | XML | Contains the resource payload. | MUST |
diagnosis | Atom entry or diagnoses element | XML | Contains detailed error information. This element can be added to SData response entries. It carries details about the success or failure of the operation performed on the entry. Several diagnosis elements can be added to the same entry. For example, to describe a set of errors. | MUST |
diagnoses | HTTP response | XML | Error payload. Requests that don't return any feed or entry. For example, delete operations. | MUST |
tracking | HTTP response | XML | Tracking payload. Responses to asynchronous requests. | MAY (MUST for asynchronous operations) |
schema | Atom feed or entry | XSD | Contains an inlined schema. | MAY |
Extension attributes
Attribute | Applies to | Value | Description | Compliance |
---|---|---|---|---|
key | XML element inside payload | string | Primary key value of the resource. See Resource Linking and Embedding section. | MUST |
url | XML element inside payload | URL | URL of the resource feed or entry. See Resource Linking and Embedding section. | MUST |
uuid | XML element inside payload | UUID | UUID of the resource. See Resource Linking and Embedding section. | MAY (MUST if sme:hasUuid is set) |
lookup | XML element inside payload | URL | URL to get a list of resource candidates for a relationship. See Resource Linking and Embedding section. | MAY |
descriptor | XML element inside payload | string | Short human readable string for the resource. See Query Payload Control section. | MAY |
deleteMissing | XML element for resource lists inside payload | true false (default) | Flag to indicate if a list update payload contains the full list (true) or only a delta (false). See Update Payloads section. | MUST |
SData HTTP namespace
The second set of extensions belong to the SData HTTP namespace (http://schemas.sage.com/sdata/http/2008/1). These extensions are used to attach HTTP header information to Atom entries. They are mainly used in query and batch operations.
Element | Inside | Value | Description | Compliance |
---|---|---|---|---|
httpMethod | Atom entry | GET PUT POST DELETE | Contains the HTTP method that should be applied to the entry. Used to associate an HTTP method to each entry in a batch request. | MAY (MUST for batch) |
httpStatus | Atom entry | integer | Contains the HTTP status code (2xx, 3xx, 4xx, 5xx) for the entry. Used to associate an HTTP status to each entry in a batch response. | MAY (MUST for batch) |
httpMessage | Atom entry | string | Contains the HTTP status message (OK, Created, Not found, etc.) for the entry. Used to associate an HTTP message to each entry in a batch response. | MAY (MUST for batch) |
location | Atom entry | URL | Contains the HTTP Location header value for the entry. Used to return the URL of a newly created resource in a batch response. | MAY (MUST for batch) |
etag | Atom entry | string | Contains the ETag value for the entry. Used to detect concurrent modifications. | MAY (MUST for batch and sme:supportsETag) |
ifMatch | Atom entry | entry | Contains the If-Match value for the entry. Used to detect concurrent modifications in batch mode. | MAY (MUST for batch and sme:supportsETag) |
XSD reference
Appendix B and Appendix C cover XML Scheme Definition (XSD) specifications for these Atom extensions. These XSD schemas can be used to validate SData feeds and entries.