diff --git a/docs/odata-json-format/odata-json-format.html b/docs/odata-json-format/odata-json-format.html index 243ac6f8..c5828252 100644 --- a/docs/odata-json-format/odata-json-format.html +++ b/docs/odata-json-format/odata-json-format.html @@ -1271,9 +1271,9 @@
A property or operation response that is of a primitive type is represented as an object with a single name/value pair, whose name is value
and whose value is a primitive value.
A property or operation response that is of a primitive type is represented as an object with a name/value pair whose name is value
and whose value is a primitive value or null
.
A property or operation response that is of complex type is represented as a complex value.
-A property or operation response that is of a collection type is represented as an object with a single name/value pair whose name is value
. Its value is the JSON representation of a collection of complex type values or collection of primitive values.
A property or operation response that is of a collection type is represented as an object with a name/value pair whose name is value
. Its value is the JSON representation of a collection of complex type values or collection of primitive values.
Example 26: primitive value
{
diff --git a/docs/odata-json-format/odata-json-format.md b/docs/odata-json-format/odata-json-format.md
index e91a3a14..1796b501 100644
--- a/docs/odata-json-format/odata-json-format.md
+++ b/docs/odata-json-format/odata-json-format.md
@@ -1899,15 +1899,15 @@ A single-valued property or operation response that has the
[OData-Protocol, section 9.1.4](https://docs.oasis-open.org/odata/odata/v4.02/odata-v4.02-part1-protocol.html#ResponseCode204NoContent).
A property or operation response that is of a primitive type is
-represented as an object with a single name/value pair, whose name is
+represented as an object with a name/value pair whose name is
`value` and whose value is a [primitive
-value](#PrimitiveValue).
+value](#PrimitiveValue) or `null`.
A property or operation response that is of complex type is represented
as a [complex value](#ComplexValue).
A property or operation response that is of a collection type is
-represented as an object with a single name/value pair whose name is
+represented as an object with a name/value pair whose name is
`value`. Its value is the JSON representation of a
[collection of complex type values](#CollectionofComplexValues) or
[collection of primitive values](#CollectionofPrimitiveValues).
diff --git a/docs/odata-protocol/odata-protocol.html b/docs/odata-protocol/odata-protocol.html
index dc4c035f..ebaf7601 100644
--- a/docs/odata-protocol/odata-protocol.html
+++ b/docs/odata-protocol/odata-protocol.html
@@ -1215,7 +1215,10 @@ 9.1.4 Response Code 204 No Content
-A request returns 204 No Content
if the requested resource has the null
value, or if the service applies a return=minimal
preference. In this case, the response body MUST be empty.
+A request returns 204 No Content
if the requested resource has the null
value and carries no control information OData-JSON, section 4.6 other than what the minimal metadata format OData-JSON, section 3.1.1 demands and no instance annotations.
+If the requested resource has the null
value but carries additional control information or instance annotations, the request returns 200 OK
instead but omits the context URL from the representation of the response, which then consists of the other control information and instance annotations only.
+A request always returns 204 No Content
if the service applies a return=minimal
preference.
+With response code 204
, the response body MUST be empty.
As defined in RFC9110, a Data Modification Request that responds with 204 No Content
MAY include an ETag
header with a value reflecting the result of the data modification if and only if the client can reasonably “know” the new representation of the resource without actually receiving it. For a PUT
request this means that the response body of a corresponding 200 OK
or 201 Created
response would have been identical to the request body, i.e. no server-side modification of values sent in the request body, no server-calculated values etc. For a PATCH
request this means that the response body of a corresponding 200 OK
or 201 Created
response would have consisted of all values sent in the request body, plus (for values not sent in the request body) server-side values corresponding to the ETag
value sent in the If-Match
header of the PATCH
request, i.e. the previous values “known” to the client.
diff --git a/docs/odata-protocol/odata-protocol.md b/docs/odata-protocol/odata-protocol.md
index 42bd081a..ac883668 100644
--- a/docs/odata-protocol/odata-protocol.md
+++ b/docs/odata-protocol/odata-protocol.md
@@ -1827,9 +1827,19 @@ Requests](#AsynchronousBatchRequests).
### 9.1.4 Response Code `204 No Content`
A request returns `204 No Content` if the requested resource has the
-`null` value, or if the service applies a
+`null` value and carries no control information [OData-JSON, section 4.6](https://docs.oasis-open.org/odata/odata-json-format/v4.02/odata-json-format-v4.02.html#ControlInformation)
+other than what the minimal metadata format [OData-JSON, section 3.1.1](https://docs.oasis-open.org/odata/odata-json-format/v4.02/odata-json-format-v4.02.html#metadataminimalodatametadataminimal)
+demands and no [instance annotations](#VocabularyExtensibility).
+
+If the requested resource has the `null` value but carries additional control information
+or instance annotations, the request returns [`200 OK`](#ResponseCode200OK) instead but
+omits the [context URL](#ContextURL) from the representation of the response,
+which then consists of the other control information and instance annotations only.
+
+A request always returns `204 No Content` if the service applies a
[`return=minimal`](#Preferencereturnrepresentationandreturnminimal) preference.
-In this case, the response body MUST be empty.
+
+With response code `204`, the response body MUST be empty.
As defined in [RFC9110](#rfc9110), a [Data Modification
Request](#DataModification) that responds with
diff --git a/odata-json-format/10 Media Entity.md b/odata-json-format/10 Media Entity.md
index 6bc26b79..c27eea78 100644
--- a/odata-json-format/10 Media Entity.md
+++ b/odata-json-format/10 Media Entity.md
@@ -37,15 +37,15 @@ A single-valued property or operation response that has the
[#OData-Protocol#ResponseCode204NoContent].
A property or operation response that is of a primitive type is
-represented as an object with a single name/value pair, whose name is
+represented as an object with a name/value pair whose name is
`value` and whose value is a [primitive
-value](#PrimitiveValue).
+value](#PrimitiveValue) or `null`.
A property or operation response that is of complex type is represented
as a [complex value](#ComplexValue).
A property or operation response that is of a collection type is
-represented as an object with a single name/value pair whose name is
+represented as an object with a name/value pair whose name is
`value`. Its value is the JSON representation of a
[collection of complex type values](#CollectionofComplexValues) or
[collection of primitive values](#CollectionofPrimitiveValues).
diff --git a/odata-protocol/8 Header Fields.md b/odata-protocol/8 Header Fields.md
index f7b7b985..bb36c3f7 100644
--- a/odata-protocol/8 Header Fields.md
+++ b/odata-protocol/8 Header Fields.md
@@ -930,9 +930,19 @@ Requests](#AsynchronousBatchRequests).
### ##subsubsec Response Code `204 No Content`
A request returns `204 No Content` if the requested resource has the
-`null` value, or if the service applies a
+`null` value and carries no control information [#OData-JSON#ControlInformation]
+other than what the minimal metadata format [#OData-JSON#metadataminimalodatametadataminimal]
+demands and no [instance annotations](#VocabularyExtensibility).
+
+If the requested resource has the `null` value but carries additional control information
+or instance annotations, the request returns [`200 OK`](#ResponseCode200OK) instead but
+omits the [context URL](#ContextURL) from the representation of the response,
+which then consists of the other control information and instance annotations only.
+
+A request always returns `204 No Content` if the service applies a
[`return=minimal`](#Preferencereturnrepresentationandreturnminimal) preference.
-In this case, the response body MUST be empty.
+
+With response code `204`, the response body MUST be empty.
As defined in [RFC9110](#rfc9110), a [Data Modification
Request](#DataModification) that responds with