diff --git a/docs/odata-csdl-json/odata-csdl-json.html b/docs/odata-csdl-json/odata-csdl-json.html index a7b177eda..4eb79932b 100644 --- a/docs/odata-csdl-json/odata-csdl-json.html +++ b/docs/odata-csdl-json/odata-csdl-json.html @@ -1078,7 +1078,7 @@
Media entity types MAY specify a list of acceptable media types using an annotation with term Core.AcceptableMediaTypes
, see OData-VocCore.
$HasStream
The value of $HasStream
is one of the Boolean literals true
or false
. Absence of the member means false
.
The value of $HasStream
is one of the Boolean literals true
or false
. Absence of the member means false
.
An entity is uniquely identified within an entity set by its key. A key MAY be specified if the entity type does not specify a base type that already has a key declared.
@@ -2666,7 +2666,7 @@The model element path expression provides a value for terms or term properties that specify the built-in type Edm.ModelElementPath
. Its argument is a model path.
The model element path expression provides a value for terms or term properties that specify the built-in type Edm.ModelElementPath
. Its argument is a model path.
The value of the model element path expression is the path itself, not the instance(s) identified by the path.
Model element path expressions are represented as a string containing a path.
@@ -2676,7 +2676,7 @@"@org.example.MyFavoriteModelElement": "/self.someAction"
The navigation property path expression provides a value for terms or term properties that specify the built-in types Edm.NavigationPropertyPath, Edm.AnyPropertyPath, or Edm.ModelElementPath
. Its argument is a model path with the following restriction:
The navigation property path expression provides a value for terms or term properties that specify the built-in types Edm.NavigationPropertyPath
, Edm.AnyPropertyPath
, or Edm.ModelElementPath
. Its argument is a model path with the following restriction:
The property path expression provides a value for terms or term properties that specify one of the built-in types Edm.PropertyPath, Edm.AnyPropertyPath, or Edm.ModelElementPath
. Its argument is a model path with the following restriction:
The property path expression provides a value for terms or term properties that specify one of the built-in types Edm.PropertyPath
, Edm.AnyPropertyPath
, or Edm.ModelElementPath
. Its argument is a model path with the following restriction:
Annotations MAY use the following arithmetic expressions which evaluate to a numeric value. These expressions MAY be combined, and they MAY be used anywhere instead of a numeric expression of the appropriate type. The semantics and evaluation rules for each arithmetic expression is identical to the corresponding arithmetic operator defined in OData-URL.
@@ -3047,7 +3047,7 @@odata.uriEncode
The odata.uriEncode
client-side function takes one argument of primitive type and returns the URL-encoded OData literal that can be used as a key value in OData URLs or in the query part of OData URLs.
The odata.uriEncode
client-side function takes one argument of primitive type and returns the URL-encoded OData literal that can be used as a key value in OData URLs or in the query part of OData URLs.
Note: string literals are surrounded by single quotes as required by the paren-style key syntax.
+}The edmx:Edmx
element is the root element of a CSDL XML document. It MUST contain the Version
attribute and it MUST contain exactly one edmx:DataServices
element.
It MAY contain edmx:Reference
elements to reference other CSDL documents.
Version
The Version
attribute specifies the OData protocol version of the service. For OData 4.0 responses the value of this attribute MUST be 4.0
. For OData 4.01 responses the value of this attribute MUST be 4.01
. Services MUST return an OData 4.0 response if the request was made with an OData-MaxVersion
header with a value of 4.0
.
The Version
attribute specifies the OData protocol version of the service. For OData 4.0 responses the value of this attribute MUST be 4.0
. For OData 4.01 responses the value of this attribute MUST be 4.01
. Services MUST return an OData 4.0 response if the request was made with an OData-MaxVersion
header with a value of 4.0
.
edmx:DataServices
The edmx:DataServices
element MUST contain one or more edm:Schema
elements which define the schemas exposed by the OData service.
Example 37: binding Supplier
on Products
contained within Categories – binding applies to all suppliers of all products of all categories
Example 37: binding Supplier
on Products
contained within Categories
– binding applies to all suppliers of all products of all categories
The model element path expression provides a value for terms or term properties that specify the built-in type Edm.ModelElementPath
. Its argument is a model path.
The model element path expression provides a value for terms or term properties that specify the built-in type Edm.ModelElementPath
. Its argument is a model path.
The value of the model element path expression is the path itself, not the instance(s) identified by the path.
edm:ModelElementPath
The navigation property path expression provides a value for terms or term properties that specify the built-in types Edm.NavigationPropertyPath, Edm.AnyPropertyPath, or Edm.ModelElementPath
. Its argument is a model path with the following restriction:
The navigation property path expression provides a value for terms or term properties that specify the built-in types Edm.NavigationPropertyPath
, Edm.AnyPropertyPath
, or Edm.ModelElementPath
. Its argument is a model path with the following restriction:
The property path expression provides a value for terms or term properties that specify one of the built-in types Edm.PropertyPath, Edm.AnyPropertyPath, or Edm.ModelElementPath
. Its argument is a model path with the following restriction:
The property path expression provides a value for terms or term properties that specify one of the built-in types Edm.PropertyPath
, Edm.AnyPropertyPath
, or Edm.ModelElementPath
. Its argument is a model path with the following restriction:
odata.uriEncode
The odata.uriEncode
client-side function takes one argument of primitive type and returns the URL-encoded OData literal that can be used as a key value in OData URLs or in the query part of OData URLs.
The odata.uriEncode
client-side function takes one argument of primitive type and returns the URL-encoded OData literal that can be used as a key value in OData URLs or in the query part of OData URLs.
Note: string literals are surrounded by single quotes as required by the paren-style key syntax.
Example 78:
diff --git a/docs/odata-csdl-xml/odata-csdl-xml.md b/docs/odata-csdl-xml/odata-csdl-xml.md index be85d2dfc..fa239840d 100644 --- a/docs/odata-csdl-xml/odata-csdl-xml.md +++ b/docs/odata-csdl-xml/odata-csdl-xml.md @@ -852,7 +852,7 @@ The `Version` attribute specifies the OData protocol version of the service. For OData 4.0 responses the value of this attribute MUST be `4.0`. For OData 4.01 responses the value of this attribute MUST be `4.01`. Services MUST return an OData 4.0 response if the request was -made with an `OData-MaxVersion `header with a value of `4.0`. +made with an `OData-MaxVersion` header with a value of `4.0`. ### Element `edmx:DataServices` @@ -3150,7 +3150,7 @@ Example 36: for an entity set in any container in scope ::: {.varxml .example} Example 37: binding `Supplier` on `Products` contained within -`Categories – binding applies to all suppliers of all products of all categories` +`Categories` – binding applies to all suppliers of all products of all categories ```xmltype
control information unless their type is Double
.
--INF
, INF
, and NaN
are serialized as strings and MUST have a type
control information to specify the numeric type of the property.-INF
, INF
, and NaN
are serialized as strings and MUST have a type
control information to specify the numeric type of the property.DateTimeOffset
, Int64
in the presence of the IEEE754Compatible
format parameter etc. If a property appears in JSON string format, it should be treated as a string value unless the property is known (from the metadata document) to have a different type.The type
control information can be absent in properties nested in an instance of type Edm.Untyped
. In particular, individual primitive values within a collection cannot have type
control information.
nextLink
control information.
id
(odata.id
)The id
control information contains the entity-id, see OData-Protocol. By convention the entity-id is identical to the canonical URL of the entity, as defined in OData-URL.
The id
control information MUST appear in responses if metadata=full
is requested, or if metadata=minimal
is requested and any of a non-transient entity's key fields are omitted from the response or the entity-id is not identical to the canonical URL of the entity after
The id
control information MUST appear in responses if metadata=full
is requested, or if metadata=minimal
is requested and any of a non-transient entity’s key fields are omitted from the response or the entity-id is not identical to the canonical URL of the entity after
mediaEditLink
and mediaReadLink
MUST be included in responses if they don't follow standard URL conventions as defined in OData-URL, sections 4.6 Addressing a property and 4.14 Addressing the Media Stream of a Media Entity, or if metadata=full
is requested.
The mediaEditLink
control information contains a URL that can be used to update the binary stream associated with the media entity or stream property. It MUST be included for updatable streams if it differs from standard URL conventions relative to the edit link of the entity.
The mediaReadLink
control information contains a URL that can be used to read the binary stream associated with the media entity or stream property. It MUST be included if its value differs from the value of the associated mediaEditLink
, if present, or if it doesn’t follow standard URL conventions relative to the read link of the entity and the associated mediaEditLink
is not present.
The mediaContentType
control information MAY be included; its value SHOULD match the media type of the binary stream represented by the mediaReadLink
URL. This is only a hint; the actual media type will be included in the Content-Type
header when the resource is requested.
The mediaContentType
control information MAY be included; its value SHOULD match the media type of the binary stream represented by the mediaReadLink
URL. This is only a hint; the actual media type will be included in the Content-Type
header when the resource is requested.
The mediaEtag
control information MAY be included; its value is the ETag of the binary stream represented by this media entity or stream property.
The media*
control information is not written in responses if metadata=none
is requested.
If a stream property is provided inline in a request, the mediaContentType
control information may be specified.
Preference-Applied
response header containing the include-annotations
preference to specify the annotations actually included, where applicable, in the response. This value may differ from the annotations requested in the Prefer
header of the request.
If the include-annotations
preference is specified on an individual request within a batch, then it specifies the preference for that individual request. Individual requests within a batch that don’t include the include-annotations
preference inherit the preference of the overall batch request.
Note: The include-annotations
preference was named odata.include-annotations
in OData version 4.0. Services that support theinclude-annotations
preference SHOULD also support odata.include-annotations
for OData 4.0 clients and clients SHOULD use odata.include-annotations
for compatibility with OData 4.0 services. If both include-annotations
and odata.include-annotations
preferences are specified in the same request, the value of the include-annotations
preference SHOULD be used.
Note: The include-annotations
preference was named odata.include-annotations
in OData version 4.0. Services that support the include-annotations
preference SHOULD also support odata.include-annotations
for OData 4.0 clients and clients SHOULD use odata.include-annotations
for compatibility with OData 4.0 services. If both include-annotations
and odata.include-annotations
preferences are specified in the same request, the value of the include-annotations
preference SHOULD be used.
maxpagesize
(odata.maxpagesize
)The maxpagesize
preference is used to request that each collection within the response contain no more than the number of items specified as the positive integer value of this preference. The syntax of the maxpagesize
preference is defined in OData-ABNF.
In OData, return=representation
or return=minimal
is defined for use with a POST
, PUT
, or PATCH
Data Modification Request, or with an Action Request. Specifying a preference of return=representation
or return=minimal
in a GET
or DELETE
request does not have any effect.
A preference of return=representation
or return=minimal
is allowed on an individual Data Modification Request or Action Request within a batch, subject to the same restrictions, but SHOULD return a 4xx Client Error
if specified on the batch request itself.
A preference of return=minimal
requests that the service invoke the request but does not return content in the response. The service MAY apply this preference by returning 204 No Content
in which case it MAY include a Preference-Applied
response header containing the return=minimal
preference.
A preference of return=minimal
requests that the service invoke the request but does not return content in the response. The service MAY apply this preference by returning 204 No Content
in which case it MAY include a Preference-Applied
response header containing the return=minimal
preference.
A preference of return=representation
requests that the service invokes the request and returns the modified resource. The service MAY apply this preference by returning the representation of the successfully modified resource in the body of the response, formatted according to the rules specified for the requested format. In this case the service MAY include a Preference-Applied
response header containing the return=representation
preference.
The return
preference SHOULD NOT be applied to a batch request, but MAY be applied to individual requests within a batch.
respond-async
The respond-async
preference, as defined in RFC7240, allows clients to request that the service process the request asynchronously.
The respond-async
preference, as defined in RFC7240, allows clients to request that the service process the request asynchronously.
If the client has specified respond-async
in the request, the service MAY process the request asynchronously and return a 202 Accepted
response.
The respond-async
preference MAY be used for batch requests, in which case it applies to the batch request as a whole and not to individual requests within the batch request.
In the case that the service applies the respond-async
preference it MUST include a Preference-Applied
response header containing the respond-async
preference.
Location
header.
Vary
If a response varies depending on the OData-Version
of the response, the service MUST include a Vary
header listing the OData-MaxVersion
request header field to allow correct caching of the response.
If a response varies depending on the applied preferences (allow-entityreferences
, include-annotations
, omit-values
,
return
), the service MUST include a Vary
header listing the Prefer
request header field to allow correct caching of the response.
If a response varies depending on the applied preferences (allow-entityreferences
, include-annotations
, omit-values
, return
), the service MUST include a Vary
header listing the Prefer
request header field to allow correct caching of the response.
Alternatively, the server MAY include a Vary
header with the special value *
as defined by RFC7231, Section 8.2.1. Note that this will make it impossible for a proxy to cache the response, see RFC7240.
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.
As defined in RFC7231, 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.
As defined in RFC7231, 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.
3xx Redirection
As per RFC7231, a 3xx Redirection
indicates that further action needs to be taken by the client in order to fulfill the request. In this case, the response SHOULD include a Location
header, as appropriate, with the URL from which the result can be obtained; it MAY include a Retry-After
header.
304 Not Modified
404 Not Found
404 Not Found
indicates that the resource specified by the request URL does not exist. The response body MAY provide additional information.
404 Not Found
indicates that the resource specified by the request URL does not exist. The response body MAY provide additional information.
405 Method Not Allowed
405 Method Not Allowed
indicates that the resource specified by the request URL does not support the request method. In this case the response MUST include an Allow
header containing a list of valid request methods for the requested resource as defined in RFC7231.
406 Not Acceptable
If a response or response part is a singleton, its name is the context URL fragment.
Example 15: resource URL and corresponding context URL
-http://host/service/MainSupplier`
-http://host/service/$metadata#`MainSupplier
+http://host/service/MainSupplier
+http://host/service/$metadata#MainSupplier
Context URL template:
@@ -1009,7 +1009,7 @@If a response or response part is a single entity of a type derived from the declared type of an entity set, a type-cast segment is appended to the entity set name.
Example 17: resource URL and corresponding context URL
-http://host/service/Customers(2)/Model.VipCustomer`
+http://host/service/Customers(2)/Model.VipCustomer
http://host/service/$metadata#Customers/Model.VipCustomer/$entity
$select
.
Example 18: resource URL and corresponding context URL
-http://host/service/Customers?$`select`=Address,Orders
+http://host/service/Customers?$select=Address,Orders
http://host/service/$metadata#Customers(Address,Orders)
{context-url}#{entity-set}{/type-name}{select-list}/$entity
{context-url}#{singleton}{select-list}
{context-url}#{type-name}{select-list}
-For a 4.01 response, if a navigation property is explicitly expanded, then in addition to the non-suffixed names of any selected properties, navigation properties, functions or actions, the comma-separated list of properties MUST include the name of the expanded property, suffixed with the parenthesized comma-separated list of any properties of the expanded navigation property that are selected or expanded. If the expanded navigation property does not contain a nested $select
or $expand
, then the expanded property is suffixed with empty parentheses. If the expansion is recursive for nested children, a plus sign (+
) is infixed between the navigation property name and the opening parenthesis.
For a 4.0 response, the expanded navigation property suffixed with parentheses is omitted from the select-list if it does not contain a nested $select
or $expand
, but MUST still be present, without a suffix, if it is explicitly selected.
For a 4.01 response, if a navigation property is explicitly expanded, then in addition to the non-suffixed names of any selected properties, navigation properties, functions or actions, the comma-separated list of properties MUST include the name of the expanded property, suffixed with the parenthesized comma-separated list of any properties of the expanded navigation property that are selected or expanded. If the expanded navigation property does not contain a nested $select
or $expand
, then the expanded property is suffixed with empty parentheses. If the expansion is recursive for nested children, a plus sign (+
) is infixed between the navigation property name and the opening parenthesis.
For a 4.0 response, the expanded navigation property suffixed with parentheses is omitted from the select-list if it does not contain a nested $select
or $expand
, but MUST still be present, without a suffix, if it is explicitly selected.
If the context URL includes only expanded navigation properties (i.e., only navigation properties suffixed with parentheses), then all structural properties are implicitly selected (same as if there were no properties listed in the select-list).
Navigation properties with expanded references are not represented in the context URL.
{context-url}#{entity-set}{/type-name}{select-list}
{context-url}#{entity-set}{/type-name}{select-list}/$entity
-{context-url}#{entity}/{property-path}`{select-list}
+{context-url}#{entity}/{property-path}{select-list}
{context-url}#Collection({type-name}){select-list}
{context-url}#{type-name}{select-list}
If the response from an action or function is a collection of entities or a single entity that is a member of an entity set, the context URL identifies the entity set. If the response from an action or function is a property of a single entity, the context URL identifies the entity and property. Otherwise, the context URL identifies the type returned by the operation. The context URL will correspond to one of the former examples.
@@ -1154,7 +1154,7 @@Example 30: resource URL and corresponding context URL
-http://host/service/Customers`?$deltatoken=1234
+http://host/service/Customers?$deltatoken=1234
http://host/service/$metadata#Customers/$delta
The context URL of an update request body for a collection of entities is simply the fragment #$delta
.
Price
is less than $10.00
GET http://host/service/Products?$filter=Price lt 10.00
The $count
segment may be used within a $filter
expression to limit the items returned based on the exact count of related entities or items within a collection-valued property.
The $count
segment may be used within a $filter
expression to limit the items returned based on the exact count of related entities or items within a collection-valued property.
Example 47: return all Categories with less than 10 products
GET http://host/service/Categories?$filter=Products/$count lt 10
@@ -1542,7 +1542,7 @@ Example 57:
GET http://host/service/Categories?$expand=Products($count=true)
@@ -1603,7 +1603,7 @@ If the relationship terminates on a single entity, the response MUST be the format-specific representation of the related single entity. If no entity is related, the service returns 204 No Content
.
Example 65: return the supplier of the product with ID=1
in the Products entity set
Example 65: return the supplier of the product with ID=1
in the Products entity set
GET http://host/service/Products(1)/Supplier
Example 70: return the number of products whose Price
is less than $10.00
GET http://host/service/Products/$filter(@foo)/$count?@foo=Price lt 10.00
@@ -2187,7 +2187,7 @@ Example 98: invoke the SampleEntities.CreateOrder
action using Customers('ALFKI')
as the customer (or binding parameter). The values 2
for the quantity
parameter and BLACKFRIDAY
for the discountCode
parameter are passed in the body of the request. Invoke the action only if the customer’s ETag still matches.
POST http://host/service/Customers('ALFKI')/SampleEntities.CreateOrder
-If-Match: W/"MjAxOS0wMy0yMVQxMzowNVo="`
+If-Match: W/"MjAxOS0wMy0yMVQxMzowNVo="
Content-Type: application/json
{
@@ -2222,7 +2222,7 @@ multipart batch format MUST contain a Content-Type
header specifying a content type of multipart/mixed
and a boundary
parameter as defined in RFC2046.
Example 99: multipart batch request
-POST /service/$batch HTTP/1.1`
+POST /service/$batch HTTP/1.1
Host: odata.org
OData-Version: 4.0
Content-Type: multipart/mixed; boundary=batch_36522ad7-fc75-4b56-8c71-56071383e77b
@@ -2274,7 +2274,7 @@
Example 101:
-GET https://host:1234/path/service/People(1) HTTP/1.1 ```
+GET https://host:1234/path/service/People(1) HTTP/1.1
- Absolute resource path and separate
Host
header
@@ -2796,7 +2796,7 @@ MAY support deleted entities, link entities, deleted link entities in a delta response (section 11.3)
- MAY support asynchronous responses (section 11.6)
- MAY support
metadata=minimal
in a JSON response (see OData-JSON)
-- MAY support
streaming
in a JSON response (see OData-JSON)
+- MAY support
streaming
in a JSON response (see OData-JSON)
In addition, interoperable OData 4.01 clients
diff --git a/docs/odata-protocol/odata-protocol.md b/docs/odata-protocol/odata-protocol.md
index 1d210f2ba..b19e89e43 100644
--- a/docs/odata-protocol/odata-protocol.md
+++ b/docs/odata-protocol/odata-protocol.md
@@ -1408,9 +1408,9 @@ individual request. Individual requests within a batch that don't
include the `include-annotations` preference inherit the preference of
the overall batch request.
-Note: The `include-annotations `preference was named
+Note: The `include-annotations` preference was named
`odata.include-annotations` in OData version 4.0. Services that support
-the` include-annotations `preference SHOULD also support
+the `include-annotations` preference SHOULD also support
`odata.include-annotations` for OData 4.0 clients and clients SHOULD use
`odata.include-annotations` for compatibility with OData 4.0 services.
If both `include-annotations` and `odata.include-annotations`
@@ -1518,7 +1518,7 @@ request but does not return content in the response. The service MAY
apply this preference by returning
[`204 No Content`](#ResponseCode204NoContent) in which case it MAY
include a [`Preference-Applied`](#HeaderPreferenceApplied) response
-header containing the `return=minimal `preference.
+header containing the `return=minimal` preference.
A preference of `return=representation` requests that the service
invokes the request and returns the modified resource. The service MAY
@@ -1534,7 +1534,7 @@ MAY be applied to individual requests within a batch.
#### 8.2.8.8 Preference `respond-async`
-The `respond-async `preference, as defined in [RFC7240](#rfc7240),
+The `respond-async` preference, as defined in [RFC7240](#rfc7240),
allows clients to request that the service process the request
asynchronously.
@@ -1750,7 +1750,7 @@ allow correct caching of the response.
If a response varies depending on the applied preferences
([`allow-entityreferences`](#Preferenceallowentityreferencesodataallowentityreferences),
[`include-annotations`](#Preferenceincludeannotationsodataincludeannotations),
-[`omit-values`](#Preferenceomitvalues)`, `[`return`](#Preferencereturnrepresentationandreturnminimal)),
+[`omit-values`](#Preferenceomitvalues), [`return`](#Preferencereturnrepresentationandreturnminimal)),
the service MUST include a `Vary` header listing the
[`Prefer`](#HeaderPrefer) request header field to allow correct caching
of the response.
@@ -1807,7 +1807,7 @@ In this case, the response body MUST be empty.
As defined in [RFC7231](#rfc7231), a [Data Modification
Request](#DataModification) that responds with
-`204 No Content MAY `include an `ETag` header with a value reflecting
+`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
@@ -1857,7 +1857,7 @@ of the error is as defined for the appropriate [format](#Formats).
### 9.2.1 Response Code `404 Not Found`
-`404 Not Found `indicates that the resource specified by the request URL
+`404 Not Found` indicates that the resource specified by the request URL
does not exist. The response body MAY provide additional information.
### 9.2.2 Response Code `405 Method Not Allowed`
@@ -2097,8 +2097,8 @@ URL fragment.
::: example
Example 15: resource URL and corresponding context URL
```
-http://host/service/MainSupplier`
-http://host/service/$metadata#`MainSupplier
+http://host/service/MainSupplier
+http://host/service/$metadata#MainSupplier
```
:::
@@ -2132,7 +2132,7 @@ the entity set name.
::: example
Example 17: resource URL and corresponding context URL
```
-http://host/service/Customers(2)/Model.VipCustomer`
+http://host/service/Customers(2)/Model.VipCustomer
http://host/service/$metadata#Customers/Model.VipCustomer/$entity
```
:::
@@ -2181,7 +2181,7 @@ entities in the collection, see system query option
::: example
Example 18: resource URL and corresponding context URL
```
-http://host/service/Customers?$`select`=Address,Orders
+http://host/service/Customers?$select=Address,Orders
http://host/service/$metadata#Customers(Address,Orders)
```
:::
@@ -2252,14 +2252,14 @@ navigation properties, functions or actions, the comma-separated list of
properties MUST include the name of the expanded property, suffixed with
the parenthesized comma-separated list of any properties of the expanded
navigation property that are selected or expanded. If the expanded
-navigation property does not contain a nested `$select `or` $expand`,
+navigation property does not contain a nested `$select` or `$expand`,
then the expanded property is suffixed with empty parentheses. If the
expansion is recursive for nested children, a plus sign (`+`) is infixed
between the navigation property name and the opening parenthesis.
For a 4.0 response, the expanded navigation property suffixed with
parentheses is omitted from the select-list if it does not contain a
-nested `$select `or` $expand`, but MUST still be present, without a
+nested `$select` or `$expand`, but MUST still be present, without a
suffix, if it is explicitly selected.
If the context URL includes only expanded navigation properties (i.e.,
@@ -2312,14 +2312,14 @@ navigation properties, functions or actions, the comma-separated list of
properties MUST include the name of the expanded property, suffixed with
the parenthesized comma-separated list of any properties of the expanded
navigation property that are selected or expanded. If the expanded
-navigation property does not contain a nested `$select `or` $expand`,
+navigation property does not contain a nested `$select` or `$expand`,
then the expanded property is suffixed with empty parentheses. If the
expansion is recursive for nested children, a plus sign (`+`) is infixed
between the navigation property name and the opening parenthesis.
For a 4.0 response, the expanded navigation property suffixed with
parentheses is omitted from the select-list if it does not contain a
-nested `$select `or `$expand`, but MUST still be present, without a
+nested `$select` or `$expand`, but MUST still be present, without a
suffix, if it is explicitly selected.
If the context URL includes only expanded navigation properties (i.e.,
@@ -2445,7 +2445,7 @@ Context URL templates:
{context-url}#{entity-set}{/type-name}{select-list}
{context-url}#{entity-set}{/type-name}{select-list}/$entity
- {context-url}#{entity}/{property-path}`{select-list}
+ {context-url}#{entity}/{property-path}{select-list}
{context-url}#Collection({type-name}){select-list}
{context-url}#{type-name}{select-list}
@@ -2486,7 +2486,7 @@ of the containing entity.
::: example
Example 30: resource URL and corresponding context URL
```
-http://host/service/Customers`?$deltatoken=1234
+http://host/service/Customers?$deltatoken=1234
http://host/service/$metadata#Customers/$delta
```
:::
@@ -3097,7 +3097,7 @@ GET http://host/service/Products?$filter=Price lt 10.00
:::
The [`$count`](#SystemQueryOptioncount) segment may be used within a
-`$filter `expression to limit the items returned based on the exact
+`$filter` expression to limit the items returned based on the exact
count of related entities or items within a collection-valued property.
::: example
@@ -3393,7 +3393,7 @@ GET http://host/service/Products?$count=true
:::
The count of related entities can be requested by specifying
-the` $count` query option within the `$expand` clause.
+the `$count` query option within the `$expand` clause.
::: example
Example 57:
@@ -3563,7 +3563,7 @@ entity is related, the service returns
[`204 No Content`](#ResponseCode204NoContent).
::: example
-Example 65: return the supplier of the product with `ID=1 `in the
+Example 65: return the supplier of the product with `ID=1` in the
Products entity set
```
GET http://host/service/Products(1)/Supplier
@@ -3672,7 +3672,7 @@ GET http://host/service/Products/$count
:::
With 4.01 services the `/$count` segment MAY be used in combination with
-the `/$filter path` segment to count the items in the filtered
+the `/$filter` path segment to count the items in the filtered
collection.
::: example
@@ -5533,7 +5533,7 @@ Example 98: invoke the `SampleEntities.CreateOrder` action using
the action only if the customer's ETag still matches.
```json
POST http://host/service/Customers('ALFKI')/SampleEntities.CreateOrder
-If-Match: W/"MjAxOS0wMy0yMVQxMzowNVo="`
+If-Match: W/"MjAxOS0wMy0yMVQxMzowNVo="
Content-Type: application/json
{
@@ -5664,7 +5664,7 @@ format](#MultipartBatchFormat) MUST contain a
::: example
Example 99: multipart batch request
```
-POST /service/$batch HTTP/1.1`
+POST /service/$batch HTTP/1.1
Host: odata.org
OData-Version: 4.0
Content-Type: multipart/mixed; boundary=batch_36522ad7-fc75-4b56-8c71-56071383e77b
@@ -5831,7 +5831,8 @@ set can use one of the following three formats:
::: example
Example 101:
```
-GET https://host:1234/path/service/People(1) HTTP/1.1 ```
+GET https://host:1234/path/service/People(1) HTTP/1.1
+```
:::
- Absolute resource path and separate `Host` header
@@ -6649,7 +6650,7 @@ in a delta response ([section 11.3](#RequestingChanges))
13. MAY support asynchronous responses ([section 11.6](#AsynchronousRequests))
14. MAY support `metadata=minimal` in a JSON response (see
[OData-JSON](#ODataJSON))
-15. MAY support `streaming `in a JSON response (see
+15. MAY support `streaming` in a JSON response (see
[OData-JSON](#ODataJSON))
In addition, interoperable OData 4.01 clients
diff --git a/docs/odata-temporal-ext/odata-temporal-ext.html b/docs/odata-temporal-ext/odata-temporal-ext.html
index 799613a7b..857a48083 100644
--- a/docs/odata-temporal-ext/odata-temporal-ext.html
+++ b/docs/odata-temporal-ext/odata-temporal-ext.html
@@ -1316,7 +1316,7 @@
- Records of type
TimelineVisible
MAY specify the property ObjectKey
.
-ObjectKey
is the “sub-key” or “alternate key” that identifies time slices for a single temporal object. It is only necessary if the annotated entity set can contain time slices for more than one temporal object. The object key is
a collection of property paths whose value combination uniquely identifies a temporal object.
+ObjectKey
is the “sub-key” or “alternate key” that identifies time slices for a single temporal object. It is only necessary if the annotated entity set can contain time slices for more than one temporal object. The object key is a collection of property paths whose value combination uniquely identifies a temporal object.
SupportedActions
is a collection of qualified names of temporal actions that may be bound to the annotated entity set. These can be the standard actions defined in this specification, or service-specific actions.
@@ -1442,7 +1442,7 @@ 4.2.2
The $at
query option takes a temporal expression as its argument. It retrieves the snapshot whose application time period contains the value of $at
.
For timeline entity sets and collection-valued navigation to timeline entity sets, $at=<point-in-time>
is shorthand for
-$from
=<point-in-time>&
$toInclusive
=<point-in-time>
+$from
=<point-in-time>&
$toInclusive
=<point-in-time>
The query option $at
can be combined with $filter
and $search
. Only entities satisfying all specified criteria are returned.
diff --git a/docs/odata-temporal-ext/odata-temporal-ext.md b/docs/odata-temporal-ext/odata-temporal-ext.md
index 885e29c74..b16755037 100644
--- a/docs/odata-temporal-ext/odata-temporal-ext.md
+++ b/docs/odata-temporal-ext/odata-temporal-ext.md
@@ -1302,8 +1302,8 @@ structured type with the following properties:
- If the period end property does not
specify a default value, a default value of "ad infinitum" is assumed.
- Records of type `TimelineVisible` MAY specify the property `ObjectKey`.
- - `ObjectKey` is the “sub-key” or “alternate key” that identifies time slices for a single temporal object. It is only necessary if the annotated entity set can contain time slices
- for more than one temporal object. `The object key is `a collection of
+ - `ObjectKey` is the "sub-key" or "alternate key" that identifies time slices for a single temporal object. It is only necessary if the annotated entity set can contain time slices
+ for more than one temporal object. The object key is a collection of
property paths whose value combination uniquely identifies a temporal
object.
- `SupportedActions` is a collection of
@@ -1496,7 +1496,7 @@ For timeline entity sets and collection-valued navigation to timeline
entity sets, `$at=` is shorthand for
::: indent
-[`$from`](#QueryOptionsfromtoandtoInclusive)=`&`[`$toInclusive`](#QueryOptionsfromtoandtoInclusive)`=`
+[`$from`](#QueryOptionsfromtoandtoInclusive)`=&`[`$toInclusive`](#QueryOptionsfromtoandtoInclusive)`=`
:::
The query option `$at` can be combined with `$filter` and `$search`.
diff --git a/docs/odata-url-conventions/odata-url-conventions.html b/docs/odata-url-conventions/odata-url-conventions.html
index d2f122daa..d80f870fe 100644
--- a/docs/odata-url-conventions/odata-url-conventions.html
+++ b/docs/odata-url-conventions/odata-url-conventions.html
@@ -702,7 +702,7 @@ 4.8 Addressing the Count of a Collection
To address the raw value of the number of items in a collection, clients append /$count
to the resource path of the URL identifying the entity set or collection.
-The /$count
path suffix identifies the integer count of records in the collection and SHOULD NOT be combined with the system query options $top
, $skip
, $orderby
, $expand
, and $format
. The count MUST NOT be affected by $top
, $skip
, $orderby
, or $expand
.
+The /$count
path suffix identifies the integer count of records in the collection and SHOULD NOT be combined with the system query options $top
, $skip
, $orderby
, $expand
, and $format
. The count MUST NOT be affected by $top
, $skip
, $orderby
, or $expand
.
The count is calculated after applying any /$filter
path segments, or $filter
or $search
system query options to the collection.
Example 30: the number of related entities
@@ -726,7 +726,7 @@ 4.9 Addressing a Member within an Entity Collection
Collections of entities are modeled as entity sets, collection-valued navigation properties, or operation results.
-For entity sets, results of operations associated with an entity set through an EntitySet
or EntitySetPath
declaration, or collection-valued navigation properties with a NavigationPropertyBinding
or ContainsTarget=true
specification, members of the collection can be addressed by convention by appending the parenthesized key to the URL specifying the collection of entities, or by using the key-as-segment convention if supported by the service.
+For entity sets, results of operations associated with an entity set through an EntitySet
or EntitySetPath
declaration, or collection-valued navigation properties with a NavigationPropertyBinding
or ContainsTarget=true
specification, members of the collection can be addressed by convention by appending the parenthesized key to the URL specifying the collection of entities, or by using the key-as-segment convention if supported by the service.
For collection-valued navigation properties with navigation property bindings that end in a type-cast segment, a type-cast segment MUST be appended to the collection URL before appending the key segment.
Note: entity sets or collection-valued navigation properties annotated with term Capabilities.IndexableByKey
defined in OData-VocCap and a value of false
do not support addressing their members by key.
4.10 Addressing a Member of an Ordered Collection
@@ -747,9 +747,9 @@
Example 37: entity restricted to a VipCustomer
instance, resulting in 404 Not Found
if the customer with key 1
is not a VipCustomer
-http://host/service/`Customers/Model.VipCustomer(1)
+http://host/service/Customers/Model.VipCustomer(1)
-http://host/service/`Customers(1)/Model.VipCustomer
+http://host/service/Customers(1)/Model.VipCustomer
Example 38: cast the complex property Address
to its derived type DetailedAddress
, then get a property of the derived type
@@ -792,7 +792,7 @@ 4.14 Addressing the Media Stream of a Media Entity
To address the media stream represented by a media entity, clients append /$value
to the resource path of the media entity URL. Services may redirect from this canonical URL to the source URL of the media stream.
-Example 45: request the media stream for the picture with the key value Sunset4321299432:
+Example 45: request the media stream for the picture with the key value Sunset4321299432
:
http://host/service/Pictures('Sunset4321299432')/$value
4.15 Addressing the Cross Join of Entity Sets
@@ -852,7 +852,7 @@ 5 Query Options
The query options part of an OData URL specifies three types of information: system query options, custom query options, and parameter aliases. All OData services MUST follow the query string parsing and construction rules defined in this section and its subsections.
5.1 System Query Options
-System query options are query string parameters that control the amount and order of the data returned for the resource identified by the URL. The names of all system query options are optionally prefixed with a dollar ($
) character. 4.01 Services MUST support case-insensitive system query option names specified with or without the $
prefix. Clients that want to work with 4.0 services MUST use lower case names and specify the $
prefix.
+System query options are query string parameters that control the amount and order of the data returned for the resource identified by the URL. The names of all system query options are optionally prefixed with a dollar ($
) character. 4.01 Services MUST support case-insensitive system query option names specified with or without the $
prefix. Clients that want to work with 4.0 services MUST use lower case names and specify the $
prefix.
For GET
, PATCH
, and PUT
requests the following rules apply:
- Resource paths identifying a single entity, a complex type instance, a collection of entities, or a collection of complex type instances allow
$compute
, $expand
and $select
.
@@ -950,7 +950,7 @@
Example 55: all products with a Name
less than or equal to Milk
:
-http://host/service/Products?$filter=Name le 'Milk'`
+http://host/service/Products?$filter=Name le 'Milk'
Example 56: all products with a Name
equal to Milk
that also have a Price
less than 2.55:
@@ -1864,14 +1864,14 @@ 5.1.5 System Query Option $orderby
The $orderby
system query option allows clients to request resources in a particular order.
The semantics of $orderby
are covered in the OData-Protocol document.
The OData-ABNF orderby
syntax rule defines the formal grammar of the $orderby
query option.
5.1.6 System Query Options $top
and $skip
The $top
system query option requests the number of items in the queried collection to be included in the result. The $skip
query option requests the number of items in the queried collection that are to be skipped and not included in the result. A client can request a particular page of items by combining $top
and $skip
.
-The semantics of $top
and $skip
are covered in the OData-Protocol document. The OData-ABNF top
and skip
syntax rules define the formal grammar of the $top
and $skip
query options respectively.
+The semantics of $top
and $skip
are covered in the OData-Protocol document. The OData-ABNF top
and skip
syntax rules define the formal grammar of the $top
and $skip
query options respectively.
5.1.7 System Query Option $count
The $count
system query option allows clients to request a count of the matching resources included with the resources in the response. The $count
query option has a Boolean value of true
or false
.
The semantics of $count
is covered in the OData-Protocol document.
diff --git a/docs/odata-url-conventions/odata-url-conventions.md b/docs/odata-url-conventions/odata-url-conventions.md
index 4cdce64f0..4b04db5fa 100644
--- a/docs/odata-url-conventions/odata-url-conventions.md
+++ b/docs/odata-url-conventions/odata-url-conventions.md
@@ -997,7 +997,7 @@ To address the raw value of the number of items in a collection, clients
append `/$count` to the resource path of the URL identifying the entity
set or collection.
-The `/$count `path suffix identifies the integer count of records in the
+The `/$count` path suffix identifies the integer count of records in the
collection and SHOULD NOT be combined with the system query options
[`$top`](#SystemQueryOptionstopandskip),
[`$skip`](#SystemQueryOptionstopandskip),
@@ -1055,9 +1055,9 @@ Collections of entities are modeled as entity sets, collection-valued
navigation properties, or operation results.
For entity sets, results of operations associated with an entity set
-through an `EntitySet `or `EntitySetPath` declaration, or
+through an `EntitySet` or `EntitySetPath` declaration, or
collection-valued navigation properties with a
-`NavigationPropertyBinding `or `ContainsTarget=true `specification,
+`NavigationPropertyBinding` or `ContainsTarget=true` specification,
members of the collection can be addressed by convention by appending
the parenthesized key to the URL specifying the collection of entities,
or by using the [key-as-segment convention](#KeyasSegmentConvention) if
@@ -1138,9 +1138,9 @@ http://host/service/Customers/Model.VipCustomer
Example 37: entity restricted to a `VipCustomer` instance, resulting in
`404 Not Found` if the customer with key `1` is not a `VipCustomer`
```
-http://host/service/`Customers/Model.VipCustomer(1)
+http://host/service/Customers/Model.VipCustomer(1)
-http://host/service/`Customers(1)/Model.VipCustomer
+http://host/service/Customers(1)/Model.VipCustomer
```
:::
@@ -1262,7 +1262,7 @@ stream.
::: example
Example 45: request the media stream for the picture with the key value
-`Sunset4321299432:`
+`Sunset4321299432`:
```
http://host/service/Pictures('Sunset4321299432')/$value
```
@@ -1413,7 +1413,7 @@ System query options are query string parameters that control the amount
and order of the data returned for the resource identified by the URL.
The names of all system query options are optionally prefixed with a
dollar (`$`) character. 4.01 Services MUST support case-insensitive
-system query option names specified with or without the `$ `prefix.
+system query option names specified with or without the `$` prefix.
Clients that want to work with 4.0 services MUST use lower case names
and specify the `$` prefix.
@@ -1681,7 +1681,7 @@ http://host/service/Products?$filter=Name lt 'Milk'
::: example
Example 55: all products with a `Name` less than or equal to `Milk`:
```
-http://host/service/Products?$filter=Name le 'Milk'`
+http://host/service/Products?$filter=Name le 'Milk'
```
:::
@@ -3634,7 +3634,7 @@ http://host/service/Products?$select=ID,Model.ActionName,Model2.*
```
:::
-When multiple select item exist in a `select clause`, then the total set
+When multiple select item exist in a `$select` clause, then the total set
of properties, open properties, navigation properties, actions and
functions to be returned is equal to the union of the set of those
identified by each select item.
@@ -3661,7 +3661,7 @@ particular page of items by combining `$top` and `$skip`.
The semantics of `$top` and `$skip` are covered in the
[OData-Protocol](#ODataProtocol) document. The [OData-ABNF](#ODataABNF) `top`
and `skip` syntax rules define the formal grammar of the `$top` and
-`$skip `query options respectively.
+`$skip` query options respectively.
### 5.1.7 System Query Option `$count`
diff --git a/odata-csdl/13 Entity Container.md b/odata-csdl/13 Entity Container.md
index 956f807e1..7a826a547 100644
--- a/odata-csdl/13 Entity Container.md
+++ b/odata-csdl/13 Entity Container.md
@@ -553,7 +553,7 @@ Example ##ex: for an entity set in any container in scope
::: {.varxml .example}
Example ##ex: binding `Supplier` on `Products` contained within
-`Categories – binding applies to all suppliers of all products of all categories`
+`Categories` – binding applies to all suppliers of all products of all categories
```xml
` is shorthand for
::: indent
-[`$from`](#QueryOptionsfromtoandtoInclusive)=`&`[`$toInclusive`](#QueryOptionsfromtoandtoInclusive)`=`
+[`$from`](#QueryOptionsfromtoandtoInclusive)`=&`[`$toInclusive`](#QueryOptionsfromtoandtoInclusive)`=`
:::
The query option `$at` can be combined with `$filter` and `$search`.
diff --git a/odata-url-conventions/4 Resource Path.md b/odata-url-conventions/4 Resource Path.md
index 3815d6c8d..5de208b8c 100644
--- a/odata-url-conventions/4 Resource Path.md
+++ b/odata-url-conventions/4 Resource Path.md
@@ -562,7 +562,7 @@ To address the raw value of the number of items in a collection, clients
append `/$count` to the resource path of the URL identifying the entity
set or collection.
-The `/$count `path suffix identifies the integer count of records in the
+The `/$count` path suffix identifies the integer count of records in the
collection and SHOULD NOT be combined with the system query options
[`$top`](#SystemQueryOptionstopandskip),
[`$skip`](#SystemQueryOptionstopandskip),
@@ -621,9 +621,9 @@ Collections of entities are modeled as entity sets, collection-valued
navigation properties, or operation results.
For entity sets, results of operations associated with an entity set
-through an `EntitySet `or `EntitySetPath` declaration, or
+through an `EntitySet` or `EntitySetPath` declaration, or
collection-valued navigation properties with a
-`NavigationPropertyBinding `or `ContainsTarget=true `specification,
+`NavigationPropertyBinding` or `ContainsTarget=true` specification,
members of the collection can be addressed by convention by appending
the parenthesized key to the URL specifying the collection of entities,
or by using the [key-as-segment convention](#KeyasSegmentConvention) if
@@ -704,9 +704,9 @@ http://host/service/Customers/Model.VipCustomer
Example ##ex: entity restricted to a `VipCustomer` instance, resulting in
`404 Not Found` if the customer with key `1` is not a `VipCustomer`
```
-http://host/service/`Customers/Model.VipCustomer(1)
+http://host/service/Customers/Model.VipCustomer(1)
-http://host/service/`Customers(1)/Model.VipCustomer
+http://host/service/Customers(1)/Model.VipCustomer
```
:::
@@ -828,7 +828,7 @@ stream.
::: example
Example ##ex: request the media stream for the picture with the key value
-`Sunset4321299432:`
+`Sunset4321299432`:
```
http://host/service/Pictures('Sunset4321299432')/$value
```
diff --git a/odata-url-conventions/5 Query Options.md b/odata-url-conventions/5 Query Options.md
index 4420143ae..b3d4d617a 100644
--- a/odata-url-conventions/5 Query Options.md
+++ b/odata-url-conventions/5 Query Options.md
@@ -16,7 +16,7 @@ System query options are query string parameters that control the amount
and order of the data returned for the resource identified by the URL.
The names of all system query options are optionally prefixed with a
dollar (`$`) character. 4.01 Services MUST support case-insensitive
-system query option names specified with or without the `$ `prefix.
+system query option names specified with or without the `$` prefix.
Clients that want to work with 4.0 services MUST use lower case names
and specify the `$` prefix.
@@ -284,7 +284,7 @@ http://host/service/Products?$filter=Name lt 'Milk'
::: example
Example ##ex: all products with a `Name` less than or equal to `Milk`:
```
-http://host/service/Products?$filter=Name le 'Milk'`
+http://host/service/Products?$filter=Name le 'Milk'
```
:::
@@ -2244,7 +2244,7 @@ http://host/service/Products?$select=ID,Model.ActionName,Model2.*
```
:::
-When multiple select item exist in a `select clause`, then the total set
+When multiple select item exist in a `$select` clause, then the total set
of properties, open properties, navigation properties, actions and
functions to be returned is equal to the union of the set of those
identified by each select item.
@@ -2271,7 +2271,7 @@ particular page of items by combining `$top` and `$skip`.
The semantics of `$top` and `$skip` are covered in the
[OData-Protocol](#ODataProtocol) document. The [OData-ABNF](#ODataABNF) `top`
and `skip` syntax rules define the formal grammar of the `$top` and
-`$skip `query options respectively.
+`$skip` query options respectively.
### ##subsubsec System Query Option `$count`