-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
54 changed files
with
2,937 additions
and
2,335 deletions.
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -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). | ||
|
||
|
@@ -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": { | ||
|
@@ -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", | ||
|
@@ -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. | ||
|
||
|
@@ -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`. | ||
::: | ||
|
||
|
@@ -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 | ||
|
@@ -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 | ||
|
@@ -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", | ||
|
@@ -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 | ||
``` | ||
::: | ||
|
||
|
@@ -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. | ||
|
||
|
@@ -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 | ||
|
@@ -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 | ||
|
@@ -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 | ||
|
@@ -4778,7 +4787,8 @@ Example 73: | |
"S" | ||
] | ||
] | ||
} ``` | ||
} | ||
``` | ||
::: | ||
|
||
|
||
|
@@ -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 | ||
|
@@ -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. | ||
|
||
|
@@ -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 | ||
|
@@ -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. | ||
|
@@ -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 | ||
|
@@ -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 | ||
|
@@ -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 | ||
|
@@ -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`. | ||
|
@@ -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" | ||
} | ||
} | ||
} | ||
} | ||
|
@@ -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. | ||
|
@@ -5844,7 +5858,8 @@ Example 92: | |
} | ||
} | ||
} | ||
} ``` | ||
} | ||
``` | ||
::: | ||
|
||
|
||
|
@@ -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) | ||
::: | ||
|
||
------- | ||
|
Binary file not shown.
Oops, something went wrong.