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.

6.5 Key

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 @@

1 ]

14.4.1.4 Model Element 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 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"

14.4.1.5 Navigation Property Path

-

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:

@@ -2696,7 +2696,7 @@

}

14.4.1.6 Property Path

-

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:

@@ -2857,7 +2857,7 @@

< "S" ] ] -} ``` +}

14.4.3 Arithmetic Operators

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 @@

}

14.4.4.4 Function 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:

@@ -3563,7 +3563,7 @@

} } } -} ```

+}

17 Conformance

diff --git a/docs/odata-csdl-json/odata-csdl-json.md b/docs/odata-csdl-json/odata-csdl-json.md index 6d83f0998..40502e256 100644 --- a/docs/odata-csdl-json/odata-csdl-json.md +++ b/docs/odata-csdl-json/odata-csdl-json.md @@ -1497,7 +1497,7 @@ see [OData-VocCore](#ODataVocCore). ::: {.varjson .rep} ### `$HasStream` -The value of `$HasStream `is one of the Boolean literals `true` or +The value of `$HasStream` is one of the Boolean literals `true` or `false`. Absence of the member means `false`. ::: @@ -4502,7 +4502,7 @@ Example 68: The model element path expression provides a value for terms or term properties that specify the [built-in -type](#BuiltInTypesfordefiningVocabularyTerms)` Edm.ModelElementPath`. Its +type](#BuiltInTypesfordefiningVocabularyTerms) `Edm.ModelElementPath`. Its argument is a [model path](#PathExpressions). The value of the model element path expression is the path itself, not @@ -4527,7 +4527,7 @@ Example 69: The navigation property path expression provides a value for terms or term properties that specify the [built-in types](#BuiltInTypesfordefiningVocabularyTerms) -`Edm.NavigationPropertyPath, Edm.AnyPropertyPath, or Edm.ModelElementPath`. +`Edm.NavigationPropertyPath`, `Edm.AnyPropertyPath`, or `Edm.ModelElementPath`. Its argument is a [model path](#PathExpressions) with the following restriction: - A non-null path MUST resolve to a model @@ -4563,7 +4563,7 @@ Example 70: The property path expression provides a value for terms or term properties that specify one of the [built-in types](#BuiltInTypesfordefiningVocabularyTerms) -`Edm.PropertyPath, Edm.AnyPropertyPath, or Edm.ModelElementPath`. Its +`Edm.PropertyPath`, `Edm.AnyPropertyPath`, or `Edm.ModelElementPath`. Its argument is a [model path](#PathExpressions) with the following restriction: - A non-null path MUST resolve to a model @@ -4778,7 +4778,8 @@ Example 73: "S" ] ] -} ``` +} +``` ::: @@ -5047,7 +5048,7 @@ Example 77: all non-empty `FirstName` values not containing the letters #### 14.4.4.4 Function `odata.uriEncode` -The `odata.uriEncode `client-side function takes one argument of +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. @@ -5814,7 +5815,8 @@ Example 91: } } } -} ``` +} +``` ::: diff --git a/docs/odata-csdl-xml/odata-csdl-xml.html b/docs/odata-csdl-xml/odata-csdl-xml.html index 497847b76..c359dead1 100644 --- a/docs/odata-csdl-xml/odata-csdl-xml.html +++ b/docs/odata-csdl-xml/odata-csdl-xml.html @@ -773,7 +773,7 @@

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.

Attribute 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.

Element edmx:DataServices

The edmx:DataServices element MUST contain one or more edm:Schema elements which define the schemas exposed by the OData service.

@@ -1743,7 +1743,7 @@

</EntitySet>
-

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

<EntitySet Name="Categories" EntityType="self.Category">
   <NavigationPropertyBinding Path="Products/Supplier"
                              Target="Suppliers" />
@@ -2532,7 +2532,7 @@ 

</Annotation>

14.4.1.4 Model Element 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 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.

Expression edm:ModelElementPath

@@ -2548,7 +2548,7 @@

</Annotation>

14.4.1.5 Navigation Property Path

-

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:

@@ -2573,7 +2573,7 @@

</Annotation>

14.4.1.6 Property Path

-

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:

@@ -2825,7 +2825,7 @@

</Apply>

14.4.4.4 Function 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 ```xml 14.4.4.4 Function `odata.uriEncode` -The `odata.uriEncode `client-side function takes one argument of +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. diff --git a/docs/odata-json-format/odata-json-format.html b/docs/odata-json-format/odata-json-format.html index bc33d3f42..a65181d62 100644 --- a/docs/odata-json-format/odata-json-format.html +++ b/docs/odata-json-format/odata-json-format.html @@ -514,7 +514,7 @@

type control information unless their type is Double. -
  • The special floating-point values -INF, INF, and NaN are serialized as strings and MUST have a type control information to specify the numeric type of the property.
  • +
  • The special floating-point values -INF, INF, and NaN are serialized as strings and MUST have a type control information to specify the numeric type of the property.
  • String values do have a first class representation in JSON, but there is an obvious collision: OData also encodes a number of other primitive types as strings, e.g. 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.

    @@ -550,7 +550,7 @@

    4.5.8 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

    • IRI-to-URI conversion as defined in RFC3987,
    • relative resolution as defined in section 5.2 of RFC3986, and
    • @@ -594,7 +594,7 @@

      media entities and stream properties at least one of the control information 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.

      diff --git a/docs/odata-json-format/odata-json-format.md b/docs/odata-json-format/odata-json-format.md index d19c44307..17d894b33 100644 --- a/docs/odata-json-format/odata-json-format.md +++ b/docs/odata-json-format/odata-json-format.md @@ -842,7 +842,7 @@ information: [`type`](#ControlInformationtypeodatatype) control information unless their type is `Double`. - The special floating-point values `-INF`, `INF`, and - `NaN `are serialized as strings and MUST have a + `NaN` are serialized as strings and MUST have a [`type`](#ControlInformationtypeodatatype) control information to specify the numeric type of the property. - String values do have a first class representation in JSON, but there is an @@ -933,11 +933,11 @@ The `id` control information contains the entity-id, see identical to the canonical URL of the entity, as defined in [OData-URL](#ODataURL). -The `id `control information MUST appear in responses if +The `id` control information MUST appear in responses if [`metadata=full`](#metadatafullodatametadatafull) is requested, or if [`metadata=minimal`](#metadataminimalodatametadataminimal) -is requested and any of a non-transient entity\'s key fields are omitted +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 @@ -1087,7 +1087,7 @@ 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; +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 diff --git a/docs/odata-protocol/odata-protocol.html b/docs/odata-protocol/odata-protocol.html index d6c8c059c..fa580107d 100644 --- a/docs/odata-protocol/odata-protocol.html +++ b/docs/odata-protocol/odata-protocol.html @@ -786,7 +786,7 @@

      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-annotationspreference 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.

      8.2.8.5 Preference 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.

      @@ -809,11 +809,11 @@

      RFC7240.

      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.

      8.2.8.8 Preference 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.

      @@ -870,7 +870,7 @@

      Location header.

      8.3.8 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.


      9 Common Response Status Codes

      @@ -886,7 +886,7 @@

      Data Service Request has been accepted and has not yet completed executing asynchronously. The asynchronous handling of requests is defined in the sections on Asynchronous Requests and Asynchronous Batch Requests.

      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.

      -

      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.

      9.1.5 Response Code 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.

      9.1.6 Response Code 304 Not Modified

      @@ -897,7 +897,7 @@

      format.

      9.2.1 Response Code 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.

      9.2.2 Response Code 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.

      9.2.3 Response Code 406 Not Acceptable

      @@ -991,8 +991,8 @@

      10.4 Singleton<

      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

      10.5 Collection of Derived Entities

      Context URL template:

      @@ -1009,7 +1009,7 @@

      10.6 D

      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

      10.7 Collection of Projected Entities

      @@ -1024,7 +1024,7 @@

      $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)

      10.8 Projected Entity

      @@ -1047,8 +1047,8 @@

      @@ -1073,8 +1073,8 @@

      10
      {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.

      The context URL of an update request body for a collection of entities is simply the fragment #$delta.

      @@ -1389,7 +1389,7 @@

      Example 46: return all Products whose 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 @@

      11.2.8 Requesting Entity References

      @@ -1638,7 +1638,7 @@

      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 @@

        1. 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`