Skip to content

Commit

Permalink
Merge branch 'main' into ODATA-1435
Browse files Browse the repository at this point in the history
  • Loading branch information
ralfhandl committed Nov 30, 2023
2 parents acfa091 + f534bf1 commit a40ab91
Show file tree
Hide file tree
Showing 54 changed files with 2,937 additions and 2,335 deletions.
1,410 changes: 709 additions & 701 deletions docs/odata-csdl-json/odata-csdl-json.html

Large diffs are not rendered by default.

132 changes: 74 additions & 58 deletions docs/odata-csdl-json/odata-csdl-json.md
Original file line number Diff line number Diff line change
Expand Up @@ -670,7 +670,7 @@ via `PATCH` and exclusively specifying modified values will reduce
the risk for unintended data loss.

Note: model elements with duration values and a granularity less than seconds
(e.g. minutes, hours, days) can be annotated with term
(e.g. minutes, hours, days) can be annotated with the term
[`Measures.DurationGranularity`](https://github.com/oasis-tcs/odata-vocabularies/blob/master/vocabularies/Org.OData.Measures.V1.md#DurationGranularity),
see [OData-VocMeasures](#ODataVocMeasures).

Expand Down Expand Up @@ -985,10 +985,10 @@ Example 8: references to other CSDL documents
{
...
"$Reference": {
"http://vocabs.odata.org/capabilities/v1": {
"https://oasis-tcs.github.io/odata-vocabularies/vocabularies/Org.OData.Capabilities.V1.json": {
...
},
"http://vocabs.odata.org/core/v1": {
"https://oasis-tcs.github.io/odata-vocabularies/vocabularies/Org.OData.Core.V1.json": {
...
},
"http://example.org/display/v1": {
Expand Down Expand Up @@ -1063,15 +1063,15 @@ vocabulary terms
{
...
"$Reference": {
"http://vocabs.odata.org/capabilities/v1": {
"https://oasis-tcs.github.io/odata-vocabularies/vocabularies/Org.OData.Capabilities.V1.json": {
"$Include": [
{
"$Namespace": "Org.OData.Capabilities.V1",
"$Alias": "Capabilities"
}
]
},
"http://vocabs.odata.org/core/v1": {
"https://oasis-tcs.github.io/odata-vocabularies/vocabularies/Org.OData.Core.V1.json": {
"$Include": [
{
"$Namespace": "Org.OData.Core.V1",
Expand Down Expand Up @@ -1221,6 +1221,9 @@ schema to create unique [qualified names](#QualifiedName), so
identifiers that are used to name types MUST be unique within a
namespace to prevent ambiguity.

Services SHOULD NOT have [actions](#Action) and [functions](#Function) with the same name, and MUST NOT have
actions and functions with the same name bound to the same type.

Names are case-sensitive, but service authors SHOULD NOT choose names
that differ only in case.

Expand Down Expand Up @@ -1497,7 +1500,7 @@ see [OData-VocCore](#ODataVocCore).
::: {.varjson .rep}
### <a name="HasStream5.4" href="#HasStream5.4"> `$HasStream`</a>

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

Expand Down Expand Up @@ -1547,7 +1550,7 @@ on one of these primitive types:
- `Edm.TimeOfDay`

Key property values MAY be language-dependent, but their values MUST be
unique across all languages and the entity ids (defined in
unique across all languages and the entity-ids (defined in
[OData-Protocol](#ODataProtocol)) MUST be language independent.

A key property MUST be a non-nullable primitive property of the entity
Expand Down Expand Up @@ -3667,14 +3670,14 @@ Symbolic Value|Model Element
`Null` |Null annotation expression
`OnDelete` |On-Delete Action of a navigation property
`Parameter` |Action of Function Parameter
`Property` |Property of a structured type
`Property` |Structural Property
`PropertyValue` |Property value of a Record annotation expression
`Record` |Record annotation expression
`Reference` |Reference to another CSDL document
`ReferentialConstraint` |Referential Constraint of a navigation property
`ReturnType` |Return Type of an Action or Function
`Schema` |Schema
`Singleton` |Singleton
`Singleton` |Singleton or single-valued Property or Navigation Property
`Term` |Term
`TypeDefinition` |Type Definition
`UrlRef` |UrlRef annotation expression
Expand All @@ -3697,7 +3700,8 @@ are defined in [OData-VocCore](#ODataVocCore))
"$Type": "Core.Tag",
"$DefaultValue": true,
"$AppliesTo": [
"Property"
"Property",
"Term"
],
"@Core.Description": "Properties and terms annotated with this term
MUST contain a valid URL",
Expand Down Expand Up @@ -4268,9 +4272,14 @@ type specified by the navigation property are addressed via a [term-cast
segment](#TermCast).

::: example
Example 64: model path addressing an annotation on a navigation property
Example 64: model path segment addressing an annotation on a navigation property
vs. term cast addressing an annotation on the resource addressed by the navigation property
```
.../[email protected]/Insertable
.../[email protected]
```

```
.../Items/@Core.Description
```
:::

Expand Down Expand Up @@ -4472,7 +4481,7 @@ path](#PathExpressions) with the following restriction:
- A non-null path MUST resolve to an annotation.

A term or term property of type `Edm.AnnotationPath` can be annotated
with term `Validation.AllowedTerms` (see
with the term `Validation.AllowedTerms` (see
[OData-VocValidation](#ODataVocValidation)) if its intended value is an
annotation path that ends in a term cast with one of the listed terms.

Expand Down Expand Up @@ -4502,7 +4511,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
Expand All @@ -4527,7 +4536,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
Expand Down Expand Up @@ -4563,7 +4572,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
Expand Down Expand Up @@ -4778,7 +4787,8 @@ Example 73:
"S"
]
]
} ```
}
```
:::


Expand Down Expand Up @@ -4905,7 +4915,7 @@ The operand expressions are used as parameters to the client-side
function.

::: {.varjson .rep}
### <a name="Apply21.20" href="#Apply21.20"> `$Apply`</a>
### <a name="Apply21.20" href="#Apply21.20"> `$Apply`</a> and <a name="Function21.21" href="#Function21.21"> `$Function`</a>

Apply expressions are represented as an object with a member `$Apply`
whose value is an array of annotation expressions, and a member
Expand Down Expand Up @@ -5047,7 +5057,7 @@ Example 77: all non-empty `FirstName` values not containing the letters

#### <a name="FunctionodatauriEncode" href="#FunctionodatauriEncode">14.4.4.4 Function `odata.uriEncode`</a>

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.

Expand Down Expand Up @@ -5086,7 +5096,7 @@ rules as the `cast` canonical function defined in
[OData-URL](#ODataURL).

::: {.varjson .rep}
### <a name="Cast21.21" href="#Cast21.21"> `$Cast`</a>
### <a name="Cast21.22" href="#Cast21.22"> `$Cast`</a>

Cast expressions are represented as an object with a member `$Cast`
whose value is an annotation expression, a member `$Type` whose value is
Expand Down Expand Up @@ -5174,7 +5184,7 @@ third expression is present, nothing is added to the surrounding
collection.

::: {.varjson .rep}
### <a name="If21.22" href="#If21.22"> `$If`</a>
### <a name="If21.23" href="#If21.23"> `$If`</a>

Conditional expressions are represented as an object with a member `$If`
whose value is an array of two or three annotation expressions.
Expand Down Expand Up @@ -5234,7 +5244,7 @@ child expression is compatible with the specified type. It returns
the specified type, and `false` otherwise.

::: {.varjson .rep}
### <a name="IsOf21.23" href="#IsOf21.23"> `$IsOf`</a>
### <a name="IsOf21.24" href="#IsOf21.24"> `$IsOf`</a>

Is-of expressions are represented as an object with a member `$IsOf`
whose value is an annotation expression, a member `$Type` whose value is
Expand Down Expand Up @@ -5281,7 +5291,7 @@ identifier](#SimpleIdentifier) value as its name that MUST be unique
within the schema containing the expression.

::: {.varjson .rep}
### <a name="LabeledElement21.24" href="#LabeledElement21.24"> `$LabeledElement`</a>
### <a name="LabeledElement21.25" href="#LabeledElement21.25"> `$LabeledElement`</a>

Labeled element expressions are represented as an object with a member
`$LabeledElement` whose value is an annotation expression, and a member
Expand Down Expand Up @@ -5312,7 +5322,7 @@ in scope and returns the value of the identified labeled element
expression as its value.

::: {.varjson .rep}
### <a name="LabeledElementReference21.25" href="#LabeledElementReference21.25"> `$LabeledElementReference`</a>
### <a name="LabeledElementReference21.26" href="#LabeledElementReference21.26"> `$LabeledElementReference`</a>

Labeled element reference expressions are represented as an object with
a member `$LabeledElementReference` whose value is a string containing
Expand Down Expand Up @@ -5348,7 +5358,7 @@ Example 86:
:::

::: {.varjson .rep}
### <a name="Null21.26" href="#Null21.26"> `$Null`</a>
### <a name="Null21.27" href="#Null21.27"> `$Null`</a>

Null expression containing [annotations](#Annotations) are represented
as an object with a member `$Null` whose value is the literal `null`.
Expand Down Expand Up @@ -5409,31 +5419,35 @@ a structured type with two structural properties `GivenName` and
annotated entity type, the fourth adds a calculated navigation property
that is pointing to a different service
```json
"@person.Employee": {
"@type": "https://example.org/vocabs/person#org.example.person.Manager",
"@Core.Description": "Annotation on record",
"GivenName": {
"$Path": "FirstName"
},
"[email protected]": "Annotation on record member",
"Surname": {
"$Path": "LastName"
},
"DirectSupervisor": {
"$Path": "Manager"
},
"CostCenter": {
"$UrlRef": {
"$Apply": [
"http://host/anotherservice/CostCenters('{ccid}')",
{
"$LabeledElement": {
"$Path": "CostCenterID"
},
"$Name": "ccid"
"$Annotations": {
"org.example.Person": {
"@org.example.hcm.Employee": {
"@type": "https://example.org/vocabs/person#org.example.person.Manager",
"@Core.Description": "Annotation on record",
"GivenName": {
"$Path": "FirstName"
},
"[email protected]": "Annotation on record member",
"Surname": {
"$Path": "LastName"
},
"DirectSupervisor": {
"$Path": "Manager"
},
"CostCenter": {
"$UrlRef": {
"$Apply": [
"http://host/anotherservice/CostCenters('{ccid}')",
{
"$LabeledElement": {
"$Path": "CostCenterID"
},
"$Name": "ccid"
}
],
"$Function": "odata.fillUriTemplate"
}
],
"$Function": "odata.fillUriTemplate"
}
}
}
}
Expand All @@ -5459,7 +5473,7 @@ expression MUST be type compatible with the type expected by the
surrounding expression.

::: {.varjson .rep}
### <a name="UrlRef21.27" href="#UrlRef21.27"> `$UrlRef`</a>
### <a name="UrlRef21.28" href="#UrlRef21.28"> `$UrlRef`</a>

URL reference expressions are represented as an object with a single
member `$UrlRef` whose value is an annotation expression.
Expand Down Expand Up @@ -5844,7 +5858,8 @@ Example 92:
}
}
}
} ```
}
```
:::


Expand Down Expand Up @@ -6097,13 +6112,14 @@ https://openui5.hana.ondemand.com/1.40.10/#docs/guide/87aac894a40640f89920d7b2a4
- [`$DivBy`](#DivBy21.18)
- [`$Mod`](#Mod21.19)
- [`$Apply`](#Apply21.20)
- [`$Cast`](#Cast21.21)
- [`$If`](#If21.22)
- [`$IsOf`](#IsOf21.23)
- [`$LabeledElement`](#LabeledElement21.24)
- [`$LabeledElementReference`](#LabeledElementReference21.25)
- [`$Null`](#Null21.26)
- [`$UrlRef`](#UrlRef21.27)
- [`$Function`](#Function21.21)
- [`$Cast`](#Cast21.22)
- [`$If`](#If21.23)
- [`$IsOf`](#IsOf21.24)
- [`$LabeledElement`](#LabeledElement21.25)
- [`$LabeledElementReference`](#LabeledElementReference21.26)
- [`$Null`](#Null21.27)
- [`$UrlRef`](#UrlRef21.28)
:::

-------
Expand Down
Binary file modified docs/odata-csdl-json/odata-csdl-json.pdf
Binary file not shown.
Loading

0 comments on commit a40ab91

Please sign in to comment.