diff --git a/docs/odata-protocol/odata-protocol.html b/docs/odata-protocol/odata-protocol.html index f75f3913..004ada35 100644 --- a/docs/odata-protocol/odata-protocol.html +++ b/docs/odata-protocol/odata-protocol.html @@ -2825,6 +2825,7 @@

"discountCode": "BLACKFRIDAY" } +

Clients MAY associate an id with individual values nested in a parameter value in the request payload by using the Core.ContentID term defined in OData-VocCore. Services that respond with 200 OK SHOULD annotate corresponding entities in the response using the same Core.ContentID value as specified in the request. See the example in OData-JSON, section 19.4.

11.5.5.2 Action Overload Resolution

@@ -2913,7 +2914,7 @@

11.7.6 Referencing Values from Response Bodies

-

Services MAY support using values from a response body in the query part of the URL or in the request body of subsequent requests. A value reference can consist of a $ character followed by the identifier of the preceding request, then the referenced value is the value represented by the response body of that preceding request. Alternatively, a value reference can consist of a $ character followed by the value of an instance annotation with term Core.ContentID (see OData-VocCore) that occurs in the payload of the preceding request as described in section 11.4.2.2 and section 11.4.3.1 or in a preceding action payload as in the example in OData-JSON, section 19.4, then the referenced value is the corresponding value in the response, which the service SHOULD annotate with the same Core.ContentID value.

+

Services MAY support using values from a response body in the query part of the URL or in the request body of subsequent requests. A value reference can consist of a $ character followed by the identifier of the preceding request, then the referenced value is the value represented by the response body of that preceding request. Alternatively, a value reference can consist of a $ character followed by the value of an instance annotation with term Core.ContentID (see OData-VocCore) that occurs in the payload of the preceding request as described in section 11.4.2.2, section 11.4.3.1, and section 11.5.5.1, then the referenced value is the corresponding value in the response, which the service SHOULD annotate with the same Core.ContentID value.

In both cases, if the referenced value is a collection, the value reference MAY be followed by a collectionNavigationExpr, as defined in OData-ABNF, that is evaluated relative to the referenced value. Otherwise the value reference MAY be followed by a forward slash and a memberExpr that is evaluated relative to the referenced value.

If the $-prefixed identifier is identical to the name of a predefined literal for query expressions ($it, $root, or other literals defined according to the OData-Version of the protocol specified in the request), then the predefined literal is used. This collision can be avoided by e.g. using only numeric identifiers.

diff --git a/docs/odata-protocol/odata-protocol.md b/docs/odata-protocol/odata-protocol.md index a40292c6..11409667 100644 --- a/docs/odata-protocol/odata-protocol.md +++ b/docs/odata-protocol/odata-protocol.md @@ -5634,6 +5634,15 @@ Content-Type: application/json ``` ::: +Clients MAY associate an id with individual values nested in a parameter value in +the request payload by using the +[`Core.ContentID`](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#ContentID) +term defined in [OData-VocCore](#ODataVocCore). +Services that respond with [`200 OK`](#ResponseCode200OK) SHOULD annotate corresponding +entities in the response using the same +[`Core.ContentID`](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#ContentID) +value as specified in the request. See the example in [OData-JSON, section 19.4](#ODataJSON). + #### 11.5.5.2 Action Overload Resolution The same action name may be used multiple times within a schema provided @@ -5872,9 +5881,9 @@ represented by the response body of that preceding request. Alternatively, a val reference can consist of a `$` character followed by the value of an instance annotation with term [`Core.ContentID`](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#ContentID) (see [OData-VocCore](#ODataVocCore)) that occurs in the payload of the preceding request -as described in [section 11.4.2.2](#CreateRelatedEntitiesWhenCreatinganEntity) and -[section 11.4.3.1](#UpdateRelatedEntitiesWhenUpdatinganEntity) or in a preceding action payload -as in the example in [OData-JSON, section 19.4](#ODataJSON), +as described in [section 11.4.2.2](#CreateRelatedEntitiesWhenCreatinganEntity), +[section 11.4.3.1](#UpdateRelatedEntitiesWhenUpdatinganEntity), and +[section 11.5.5.1](#InvokinganAction), then the referenced value is the corresponding value in the response, which the service SHOULD annotate with the same `Core.ContentID` value. diff --git a/odata-protocol/11.5 Operations.md b/odata-protocol/11.5 Operations.md index bdbe5b77..ee5875c8 100644 --- a/odata-protocol/11.5 Operations.md +++ b/odata-protocol/11.5 Operations.md @@ -464,6 +464,15 @@ Content-Type: application/json ``` ::: +Clients MAY associate an id with individual values nested in a parameter value in +the request payload by using the +[`Core.ContentID`](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#ContentID) +term defined in [OData-VocCore](#ODataVocCore). +Services that respond with [`200 OK`](#ResponseCode200OK) SHOULD annotate corresponding +entities in the response using the same +[`Core.ContentID`](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#ContentID) +value as specified in the request. See the example in [OData-JSON, section 19.4](#ODataJSON). + #### ##subsubsubsec Action Overload Resolution The same action name may be used multiple times within a schema provided diff --git a/odata-protocol/11.7 Batch Requests.md b/odata-protocol/11.7 Batch Requests.md index ca0d9013..9e19a3c5 100644 --- a/odata-protocol/11.7 Batch Requests.md +++ b/odata-protocol/11.7 Batch Requests.md @@ -150,9 +150,9 @@ represented by the response body of that preceding request. Alternatively, a val reference can consist of a `$` character followed by the value of an instance annotation with term [`Core.ContentID`](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#ContentID) (see [OData-VocCore](#ODataVocCore)) that occurs in the payload of the preceding request -as described in [section ##CreateRelatedEntitiesWhenCreatinganEntity] and -[section ##UpdateRelatedEntitiesWhenUpdatinganEntity] or in a preceding action payload -as in the example in [OData-JSON, section 19.4](#ODataJSON), +as described in [section ##CreateRelatedEntitiesWhenCreatinganEntity], +[section ##UpdateRelatedEntitiesWhenUpdatinganEntity], and +[section ##InvokinganAction], then the referenced value is the corresponding value in the response, which the service SHOULD annotate with the same `Core.ContentID` value.