From 9c937e03ab78d3f3b478ea4f41e544f434c6aaf7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Heiko=20Thei=C3=9Fen?= Date: Thu, 11 Jan 2024 13:58:06 +0100 Subject: [PATCH 01/15] Bound actions and function overloads via container --- docs/odata-csdl-json/odata-csdl-json.html | 22 ++++++++++++++++ docs/odata-csdl-json/odata-csdl-json.md | 13 ++++++++++ docs/odata-csdl-xml/odata-csdl-xml.html | 22 ++++++++++++++++ docs/odata-csdl-xml/odata-csdl-xml.md | 13 ++++++++++ odata-csdl/14 Vocabulary and Annotation.md | 29 ++++++++++++++++++++++ 5 files changed, 99 insertions(+) diff --git a/docs/odata-csdl-json/odata-csdl-json.html b/docs/odata-csdl-json/odata-csdl-json.html index 84a2c6351..ce600fa3e 100644 --- a/docs/odata-csdl-json/odata-csdl-json.html +++ b/docs/odata-csdl-json/odata-csdl-json.html @@ -2276,6 +2276,16 @@

14.2.2 Target

MySchema.MyAction
+bound Action overload via container +Navigation Property via container or Property via container, followed by bound Action overload +
MySchema.MyEntityContainer/MyEntitySet 
/MyNavigationProperty
/MySchema.MyAction(Collection(MySchema.MyBindingType))
+ + +all bound Action overloads with given binding type via container +Navigation Property via container or Property via container, followed by all overloads of an Action +
MySchema.MyEntityContainer/MyEntitySet 
/MyNavigationProperty
/MySchema.MyAction
+ + Action Import qualified name of entity container followed by a segment containing the action import name
MySchema.MyEntityContainer/MyActionImport
@@ -2326,6 +2336,16 @@

14.2.2 Target

MySchema.MyFunction
+bound Function overload via container +Navigation Property via container or Property via container, followed by bound Function overload +
MySchema.MyEntityContainer/MyEntitySet 
/MyComplexProperty
/MySchema.MyFunction(MySchema.MyBindingType)
+ + +all bound Function overloads of given binding type via container +Navigation Property via container or Property via container, followed by all overloads of a Function +
MySchema.MyEntityContainer/MyEntitySet 
/MyComplexProperty
/MySchema.MyFunction
+ + Function Import qualified name of entity container followed by a segment containing the function import name
MySchema.MyEntityContainer/MyFunctionImport
@@ -2389,6 +2409,8 @@ 

14.2.2 Target

All qualified names used in a target path MUST be in scope.

External targeting is possible for properties and navigation properties of singletons or entities in a particular entity set. These annotations override annotations on the properties or navigation properties targeted via the declaring structured type.

+

External targeting is also possible for action and function overloads that are bound to properties or navigation properties of singletons or entities in a particular entity set. These annotations override annotations targeting the action or function overloads directly.

+

Note “all bound Action or Function overloads of given binding type via container” references all overloads where the binding parameter is an instance or a collection of the given type.

14.3 Constant Expression

Constant expressions allow assigning a constant value to an applied term.

14.3.1 Binary

diff --git a/docs/odata-csdl-json/odata-csdl-json.md b/docs/odata-csdl-json/odata-csdl-json.md index 4737ec656..c41fe1c65 100644 --- a/docs/odata-csdl-json/odata-csdl-json.md +++ b/docs/odata-csdl-json/odata-csdl-json.md @@ -3841,6 +3841,8 @@ Model element| Can be targeted with path expression (see also [section 14.4.1.1] -----|-----|----- [Action](#Action) overload| qualified name of action followed by parentheses containing the binding parameter type of a bound action overload to identify that bound overload, or by empty parentheses to identify the unbound overload|
`MySchema.MyAction(MySchema.MyBindingType)` 
`MySchema.MyAction(Collection(MySchema.BindingType))`
`MySchema.MyAction()`
all overloads of an [Action](#Action)| qualified name of action|
`MySchema.MyAction`
+bound [Action](#Action) overload via container| Navigation Property via container or Property via container, followed by bound Action overload|
`MySchema.MyEntityContainer/MyEntitySet` 
` /MyNavigationProperty`
` /MySchema.MyAction(Collection(MySchema.MyBindingType))`
+all bound [Action](#Action) overloads with given binding type via container| Navigation Property via container or Property via container, followed by all overloads of an Action|
`MySchema.MyEntityContainer/MyEntitySet` 
` /MyNavigationProperty`
` /MySchema.MyAction`
[Action Import](#ActionImport)| qualified name of entity container followed by a segment containing the action import name|
`MySchema.MyEntityContainer/MyActionImport`
[Annotation](#Annotation) on a model element| path expression identifying the model element followed by a segment containing an at (`@`) prepended to the qualified name of a term, optionally suffixed with a hash (`#`) and the qualifier of an annotation|
`MySchema.MyEntityType/@MyVocabulary.MyTerm` 
`MySchema.MyEntityType/@MyVocabulary.MyTerm#MyQualifier`
[Complex Type](#ComplexType)| qualified name of complex type|
`MySchema.MyComplexType`
@@ -3851,6 +3853,8 @@ all overloads of an [Action](#Action)| qualified name of action|
`MySchema.
 [Enumeration Type Member](#EnumerationTypeMember)| qualified name of enumeration type followed by a segment containing the name of a child element| 
`MySchema.MyEnumType/MyMember`
[Function](#Function) overload| qualified name of function followed by parentheses containing the comma-separated list of the parameter types of a bound or unbound function overload in the order of their definition in the function overload|
`MySchema.MyFunction(MySchema.MyBindingParamType,` 
` First.NonBinding.ParamType)`
`MySchema.MyFunction(First.NonBinding.ParamType,`
` Second.NonBinding.ParamType)`
all overloads of a [Function](#Function)| qualified name of function|
`MySchema.MyFunction`
+bound [Function](#Function) overload via container| Navigation Property via container or Property via container, followed by bound Function overload|
`MySchema.MyEntityContainer/MyEntitySet` 
` /MyComplexProperty`
` /MySchema.MyFunction(MySchema.MyBindingType)`
+all bound [Function](#Function) overloads of given binding type via container| Navigation Property via container or Property via container, followed by all overloads of a Function|
`MySchema.MyEntityContainer/MyEntitySet` 
` /MyComplexProperty`
` /MySchema.MyFunction`
[Function Import](#FunctionImport)| qualified name of entity container followed by a segment containing the function import name|
`MySchema.MyEntityContainer/MyFunctionImport`
 [Navigation Property](#NavigationProperty) via container| qualified name of entity container followed by a segment containing a singleton or entity set name and zero or more segments containing the name of a structural or navigation property, or a type-cast or term-cast| 
`MySchema.MyEntityContainer/MyEntitySet` 
` /MyNavigationProperty`
`MySchema.MyEntityContainer/MyEntitySet`
` /MySchema.MyEntityType/MyNavProperty`
`MySchema.MyEntityContainer/MyEntitySet`
` /MyComplexProperty/MyNavProperty`
`MySchema.MyEntityContainer/MySingleton`
` /MyComplexProperty/MyNavProperty`
[Navigation Property](#NavigationProperty) via structured type| qualified name of structured type followed by zero or more segments containing the name of a structural or navigation property, or a type-cast or term-cast|
`MySchema.MyEntityType/MyNavigationProperty` 
`MySchema.MyComplexType/MyNavigationProperty`
@@ -3871,6 +3875,15 @@ properties of singletons or entities in a particular entity set. These annotations override annotations on the properties or navigation properties targeted via the declaring structured type. +External targeting is also possible for action and function overloads that +are bound to properties or navigation properties of singletons or entities in +a particular entity set. These annotations override annotations targeting the +action or function overloads directly. + +Note "all bound Action or Function overloads of given binding type via +container" references all overloads where the binding parameter is an instance +or a collection of the given type. + ## 14.3 Constant Expression Constant expressions allow assigning a constant value to an applied diff --git a/docs/odata-csdl-xml/odata-csdl-xml.html b/docs/odata-csdl-xml/odata-csdl-xml.html index f117421d2..b255635e6 100644 --- a/docs/odata-csdl-xml/odata-csdl-xml.html +++ b/docs/odata-csdl-xml/odata-csdl-xml.html @@ -2092,6 +2092,16 @@

14.2.2 Target

MySchema.MyAction
+bound Action overload via container +Navigation Property via container or Property via container, followed by bound Action overload +
MySchema.MyEntityContainer/MyEntitySet 
/MyNavigationProperty
/MySchema.MyAction(Collection(MySchema.MyBindingType))
+ + +all bound Action overloads with given binding type via container +Navigation Property via container or Property via container, followed by all overloads of an Action +
MySchema.MyEntityContainer/MyEntitySet 
/MyNavigationProperty
/MySchema.MyAction
+ + Action Import qualified name of entity container followed by a segment containing the action import name
MySchema.MyEntityContainer/MyActionImport
@@ -2142,6 +2152,16 @@

14.2.2 Target

MySchema.MyFunction
+bound Function overload via container +Navigation Property via container or Property via container, followed by bound Function overload +
MySchema.MyEntityContainer/MyEntitySet 
/MyComplexProperty
/MySchema.MyFunction(MySchema.MyBindingType)
+ + +all bound Function overloads of given binding type via container +Navigation Property via container or Property via container, followed by all overloads of a Function +
MySchema.MyEntityContainer/MyEntitySet 
/MyComplexProperty
/MySchema.MyFunction
+ + Function Import qualified name of entity container followed by a segment containing the function import name
MySchema.MyEntityContainer/MyFunctionImport
@@ -2205,6 +2225,8 @@ 

14.2.2 Target

All qualified names used in a target path MUST be in scope.

External targeting is possible for properties and navigation properties of singletons or entities in a particular entity set. These annotations override annotations on the properties or navigation properties targeted via the declaring structured type.

+

External targeting is also possible for action and function overloads that are bound to properties or navigation properties of singletons or entities in a particular entity set. These annotations override annotations targeting the action or function overloads directly.

+

Note “all bound Action or Function overloads of given binding type via container” references all overloads where the binding parameter is an instance or a collection of the given type.

14.3 Constant Expression

Constant expressions allow assigning a constant value to an applied term.

14.3.1 Binary

diff --git a/docs/odata-csdl-xml/odata-csdl-xml.md b/docs/odata-csdl-xml/odata-csdl-xml.md index ae2e14d31..937013bbf 100644 --- a/docs/odata-csdl-xml/odata-csdl-xml.md +++ b/docs/odata-csdl-xml/odata-csdl-xml.md @@ -3654,6 +3654,8 @@ Model element| Can be targeted with path expression (see also [section 14.4.1.1] -----|-----|----- [Action](#Action) overload| qualified name of action followed by parentheses containing the binding parameter type of a bound action overload to identify that bound overload, or by empty parentheses to identify the unbound overload|
`MySchema.MyAction(MySchema.MyBindingType)` 
`MySchema.MyAction(Collection(MySchema.BindingType))`
`MySchema.MyAction()`
all overloads of an [Action](#Action)| qualified name of action|
`MySchema.MyAction`
+bound [Action](#Action) overload via container| Navigation Property via container or Property via container, followed by bound Action overload|
`MySchema.MyEntityContainer/MyEntitySet` 
` /MyNavigationProperty`
` /MySchema.MyAction(Collection(MySchema.MyBindingType))`
+all bound [Action](#Action) overloads with given binding type via container| Navigation Property via container or Property via container, followed by all overloads of an Action|
`MySchema.MyEntityContainer/MyEntitySet` 
` /MyNavigationProperty`
` /MySchema.MyAction`
[Action Import](#ActionImport)| qualified name of entity container followed by a segment containing the action import name|
`MySchema.MyEntityContainer/MyActionImport`
[Annotation](#Annotation) on a model element| path expression identifying the model element followed by a segment containing an at (`@`) prepended to the qualified name of a term, optionally suffixed with a hash (`#`) and the qualifier of an annotation|
`MySchema.MyEntityType/@MyVocabulary.MyTerm` 
`MySchema.MyEntityType/@MyVocabulary.MyTerm#MyQualifier`
[Complex Type](#ComplexType)| qualified name of complex type|
`MySchema.MyComplexType`
@@ -3664,6 +3666,8 @@ all overloads of an [Action](#Action)| qualified name of action|
`MySchema.
 [Enumeration Type Member](#EnumerationTypeMember)| qualified name of enumeration type followed by a segment containing the name of a child element| 
`MySchema.MyEnumType/MyMember`
[Function](#Function) overload| qualified name of function followed by parentheses containing the comma-separated list of the parameter types of a bound or unbound function overload in the order of their definition in the function overload|
`MySchema.MyFunction(MySchema.MyBindingParamType,` 
` First.NonBinding.ParamType)`
`MySchema.MyFunction(First.NonBinding.ParamType,`
` Second.NonBinding.ParamType)`
all overloads of a [Function](#Function)| qualified name of function|
`MySchema.MyFunction`
+bound [Function](#Function) overload via container| Navigation Property via container or Property via container, followed by bound Function overload|
`MySchema.MyEntityContainer/MyEntitySet` 
` /MyComplexProperty`
` /MySchema.MyFunction(MySchema.MyBindingType)`
+all bound [Function](#Function) overloads of given binding type via container| Navigation Property via container or Property via container, followed by all overloads of a Function|
`MySchema.MyEntityContainer/MyEntitySet` 
` /MyComplexProperty`
` /MySchema.MyFunction`
[Function Import](#FunctionImport)| qualified name of entity container followed by a segment containing the function import name|
`MySchema.MyEntityContainer/MyFunctionImport`
 [Navigation Property](#NavigationProperty) via container| qualified name of entity container followed by a segment containing a singleton or entity set name and zero or more segments containing the name of a structural or navigation property, or a type-cast or term-cast| 
`MySchema.MyEntityContainer/MyEntitySet` 
` /MyNavigationProperty`
`MySchema.MyEntityContainer/MyEntitySet`
` /MySchema.MyEntityType/MyNavProperty`
`MySchema.MyEntityContainer/MyEntitySet`
` /MyComplexProperty/MyNavProperty`
`MySchema.MyEntityContainer/MySingleton`
` /MyComplexProperty/MyNavProperty`
[Navigation Property](#NavigationProperty) via structured type| qualified name of structured type followed by zero or more segments containing the name of a structural or navigation property, or a type-cast or term-cast|
`MySchema.MyEntityType/MyNavigationProperty` 
`MySchema.MyComplexType/MyNavigationProperty`
@@ -3684,6 +3688,15 @@ properties of singletons or entities in a particular entity set. These annotations override annotations on the properties or navigation properties targeted via the declaring structured type. +External targeting is also possible for action and function overloads that +are bound to properties or navigation properties of singletons or entities in +a particular entity set. These annotations override annotations targeting the +action or function overloads directly. + +Note "all bound Action or Function overloads of given binding type via +container" references all overloads where the binding parameter is an instance +or a collection of the given type. + ## 14.3 Constant Expression Constant expressions allow assigning a constant value to an applied diff --git a/odata-csdl/14 Vocabulary and Annotation.md b/odata-csdl/14 Vocabulary and Annotation.md index 861733ec9..ab0b0dde3 100644 --- a/odata-csdl/14 Vocabulary and Annotation.md +++ b/odata-csdl/14 Vocabulary and Annotation.md @@ -580,6 +580,16 @@ qualified name of action followed by parentheses containing the binding paramete all overloads of an [Action](#Action)| qualified name of action|
`MySchema.MyAction`
+bound [Action](#Action) overload via container| +Navigation Property via container or Property via container, followed by bound Action overload| +
`MySchema.MyEntityContainer/MyEntitySet` 
+
` /MyNavigationProperty` +
` /MySchema.MyAction(Collection(MySchema.MyBindingType))`
+all bound [Action](#Action) overloads with given binding type via container| +Navigation Property via container or Property via container, followed by all overloads of an Action| +
`MySchema.MyEntityContainer/MyEntitySet` 
+
` /MyNavigationProperty` +
` /MySchema.MyAction`
[Action Import](#ActionImport)| qualified name of entity container followed by a segment containing the action import name|
`MySchema.MyEntityContainer/MyActionImport`
@@ -614,6 +624,16 @@ qualified name of function followed by parentheses containing the comma-separate all overloads of a [Function](#Function)| qualified name of function|
`MySchema.MyFunction`
+bound [Function](#Function) overload via container| +Navigation Property via container or Property via container, followed by bound Function overload| +
`MySchema.MyEntityContainer/MyEntitySet` 
+
` /MyComplexProperty` +
` /MySchema.MyFunction(MySchema.MyBindingType)`
+all bound [Function](#Function) overloads of given binding type via container| +Navigation Property via container or Property via container, followed by all overloads of a Function| +
`MySchema.MyEntityContainer/MyEntitySet` 
+
` /MyComplexProperty` +
` /MySchema.MyFunction`
[Function Import](#FunctionImport)| qualified name of entity container followed by a segment containing the function import name|
`MySchema.MyEntityContainer/MyFunctionImport`
@@ -674,6 +694,15 @@ properties of singletons or entities in a particular entity set. These
 annotations override annotations on the properties or navigation
 properties targeted via the declaring structured type.
 
+External targeting is also possible for action and function overloads that
+are bound to properties or navigation properties of singletons or entities in
+a particular entity set. These annotations override annotations targeting the
+action or function overloads directly.
+
+Note "all bound Action or Function overloads of given binding type via
+container" references all overloads where the binding parameter is an instance
+or a collection of the given type.
+
 ## ##subsec Constant Expression
 
 Constant expressions allow assigning a constant value to an applied

From 8ab36ad20256e6870127848703eed11ce9be694a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Heiko=20Thei=C3=9Fen?= 
Date: Thu, 11 Jan 2024 14:45:51 +0100
Subject: [PATCH 02/15] @ralfhandl's suggestions

---
 docs/odata-csdl-json/odata-csdl-json.html  |  6 +++---
 docs/odata-csdl-json/odata-csdl-json.md    |  6 +++---
 docs/odata-csdl-xml/odata-csdl-xml.html    |  6 +++---
 docs/odata-csdl-xml/odata-csdl-xml.md      |  6 +++---
 odata-csdl/14 Vocabulary and Annotation.md | 10 ++++++++--
 5 files changed, 20 insertions(+), 14 deletions(-)

diff --git a/docs/odata-csdl-json/odata-csdl-json.html b/docs/odata-csdl-json/odata-csdl-json.html
index ce600fa3e..7a2bd8fd3 100644
--- a/docs/odata-csdl-json/odata-csdl-json.html
+++ b/docs/odata-csdl-json/odata-csdl-json.html
@@ -2278,7 +2278,7 @@ 

14.2.2 Target

bound Action overload via container Navigation Property via container or Property via container, followed by bound Action overload -
MySchema.MyEntityContainer/MyEntitySet 
/MyNavigationProperty
/MySchema.MyAction(Collection(MySchema.MyBindingType))
+
MySchema.MyEntityContainer/MyEntitySet 
/MyNavigationProperty
/MySchema.MyAction(MySchema.MyBindingType)
MySchema.MyEntityContainer/MyEntitySet
/MyNavigationProperty
/MySchema.MyAction(Collection(MySchema.MyBindingType))
all bound Action overloads with given binding type via container @@ -2338,7 +2338,7 @@

14.2.2 Target

bound Function overload via container Navigation Property via container or Property via container, followed by bound Function overload -
MySchema.MyEntityContainer/MyEntitySet 
/MyComplexProperty
/MySchema.MyFunction(MySchema.MyBindingType)
+
MySchema.MyEntityContainer/MyEntitySet 
/MyComplexProperty
/MySchema.MyFunction(MySchema.MyBindingType)
MySchema.MyEntityContainer/MyEntitySet
/MyComplexProperty
/MySchema.MyFunc(Collection(MySchema.MyBindingType))
all bound Function overloads of given binding type via container @@ -2409,7 +2409,7 @@

14.2.2 Target

All qualified names used in a target path MUST be in scope.

External targeting is possible for properties and navigation properties of singletons or entities in a particular entity set. These annotations override annotations on the properties or navigation properties targeted via the declaring structured type.

-

External targeting is also possible for action and function overloads that are bound to properties or navigation properties of singletons or entities in a particular entity set. These annotations override annotations targeting the action or function overloads directly.

+

External targeting is also possible for action and function overloads that are bound to (properties or navigation properties) of singletons or entities in a particular entity set. These annotations override annotations targeting the action or function overloads directly.

Note “all bound Action or Function overloads of given binding type via container” references all overloads where the binding parameter is an instance or a collection of the given type.

14.3 Constant Expression

Constant expressions allow assigning a constant value to an applied term.

diff --git a/docs/odata-csdl-json/odata-csdl-json.md b/docs/odata-csdl-json/odata-csdl-json.md index c41fe1c65..4a5192b7e 100644 --- a/docs/odata-csdl-json/odata-csdl-json.md +++ b/docs/odata-csdl-json/odata-csdl-json.md @@ -3841,7 +3841,7 @@ Model element| Can be targeted with path expression (see also [section 14.4.1.1] -----|-----|----- [Action](#Action) overload| qualified name of action followed by parentheses containing the binding parameter type of a bound action overload to identify that bound overload, or by empty parentheses to identify the unbound overload|
`MySchema.MyAction(MySchema.MyBindingType)` 
`MySchema.MyAction(Collection(MySchema.BindingType))`
`MySchema.MyAction()`
all overloads of an [Action](#Action)| qualified name of action|
`MySchema.MyAction`
-bound [Action](#Action) overload via container| Navigation Property via container or Property via container, followed by bound Action overload|
`MySchema.MyEntityContainer/MyEntitySet` 
` /MyNavigationProperty`
` /MySchema.MyAction(Collection(MySchema.MyBindingType))`
+bound [Action](#Action) overload via container| Navigation Property via container or Property via container, followed by bound Action overload|
`MySchema.MyEntityContainer/MyEntitySet` 
` /MyNavigationProperty`
` /MySchema.MyAction(MySchema.MyBindingType)`
`MySchema.MyEntityContainer/MyEntitySet`
` /MyNavigationProperty`
` /MySchema.MyAction(Collection(MySchema.MyBindingType))`
all bound [Action](#Action) overloads with given binding type via container| Navigation Property via container or Property via container, followed by all overloads of an Action|
`MySchema.MyEntityContainer/MyEntitySet` 
` /MyNavigationProperty`
` /MySchema.MyAction`
[Action Import](#ActionImport)| qualified name of entity container followed by a segment containing the action import name|
`MySchema.MyEntityContainer/MyActionImport`
[Annotation](#Annotation) on a model element| path expression identifying the model element followed by a segment containing an at (`@`) prepended to the qualified name of a term, optionally suffixed with a hash (`#`) and the qualifier of an annotation|
`MySchema.MyEntityType/@MyVocabulary.MyTerm` 
`MySchema.MyEntityType/@MyVocabulary.MyTerm#MyQualifier`
@@ -3853,7 +3853,7 @@ all bound [Action](#Action) overloads with given binding type via container| Nav [Enumeration Type Member](#EnumerationTypeMember)| qualified name of enumeration type followed by a segment containing the name of a child element|
`MySchema.MyEnumType/MyMember`
[Function](#Function) overload| qualified name of function followed by parentheses containing the comma-separated list of the parameter types of a bound or unbound function overload in the order of their definition in the function overload|
`MySchema.MyFunction(MySchema.MyBindingParamType,` 
` First.NonBinding.ParamType)`
`MySchema.MyFunction(First.NonBinding.ParamType,`
` Second.NonBinding.ParamType)`
all overloads of a [Function](#Function)| qualified name of function|
`MySchema.MyFunction`
-bound [Function](#Function) overload via container| Navigation Property via container or Property via container, followed by bound Function overload|
`MySchema.MyEntityContainer/MyEntitySet` 
` /MyComplexProperty`
` /MySchema.MyFunction(MySchema.MyBindingType)`
+bound [Function](#Function) overload via container| Navigation Property via container or Property via container, followed by bound Function overload|
`MySchema.MyEntityContainer/MyEntitySet` 
` /MyComplexProperty`
` /MySchema.MyFunction(MySchema.MyBindingType)`
`MySchema.MyEntityContainer/MyEntitySet`
` /MyComplexProperty`
` /MySchema.MyFunc(Collection(MySchema.MyBindingType))`
all bound [Function](#Function) overloads of given binding type via container| Navigation Property via container or Property via container, followed by all overloads of a Function|
`MySchema.MyEntityContainer/MyEntitySet` 
` /MyComplexProperty`
` /MySchema.MyFunction`
[Function Import](#FunctionImport)| qualified name of entity container followed by a segment containing the function import name|
`MySchema.MyEntityContainer/MyFunctionImport`
 [Navigation Property](#NavigationProperty) via container| qualified name of entity container followed by a segment containing a singleton or entity set name and zero or more segments containing the name of a structural or navigation property, or a type-cast or term-cast| 
`MySchema.MyEntityContainer/MyEntitySet` 
` /MyNavigationProperty`
`MySchema.MyEntityContainer/MyEntitySet`
` /MySchema.MyEntityType/MyNavProperty`
`MySchema.MyEntityContainer/MyEntitySet`
` /MyComplexProperty/MyNavProperty`
`MySchema.MyEntityContainer/MySingleton`
` /MyComplexProperty/MyNavProperty`
@@ -3876,7 +3876,7 @@ annotations override annotations on the properties or navigation properties targeted via the declaring structured type. External targeting is also possible for action and function overloads that -are bound to properties or navigation properties of singletons or entities in +are bound to (properties or navigation properties) of singletons or entities in a particular entity set. These annotations override annotations targeting the action or function overloads directly. diff --git a/docs/odata-csdl-xml/odata-csdl-xml.html b/docs/odata-csdl-xml/odata-csdl-xml.html index b255635e6..9c391f224 100644 --- a/docs/odata-csdl-xml/odata-csdl-xml.html +++ b/docs/odata-csdl-xml/odata-csdl-xml.html @@ -2094,7 +2094,7 @@

14.2.2 Target

bound Action overload via container Navigation Property via container or Property via container, followed by bound Action overload -
MySchema.MyEntityContainer/MyEntitySet 
/MyNavigationProperty
/MySchema.MyAction(Collection(MySchema.MyBindingType))
+
MySchema.MyEntityContainer/MyEntitySet 
/MyNavigationProperty
/MySchema.MyAction(MySchema.MyBindingType)
MySchema.MyEntityContainer/MyEntitySet
/MyNavigationProperty
/MySchema.MyAction(Collection(MySchema.MyBindingType))
all bound Action overloads with given binding type via container @@ -2154,7 +2154,7 @@

14.2.2 Target

bound Function overload via container Navigation Property via container or Property via container, followed by bound Function overload -
MySchema.MyEntityContainer/MyEntitySet 
/MyComplexProperty
/MySchema.MyFunction(MySchema.MyBindingType)
+
MySchema.MyEntityContainer/MyEntitySet 
/MyComplexProperty
/MySchema.MyFunction(MySchema.MyBindingType)
MySchema.MyEntityContainer/MyEntitySet
/MyComplexProperty
/MySchema.MyFunc(Collection(MySchema.MyBindingType))
all bound Function overloads of given binding type via container @@ -2225,7 +2225,7 @@

14.2.2 Target

All qualified names used in a target path MUST be in scope.

External targeting is possible for properties and navigation properties of singletons or entities in a particular entity set. These annotations override annotations on the properties or navigation properties targeted via the declaring structured type.

-

External targeting is also possible for action and function overloads that are bound to properties or navigation properties of singletons or entities in a particular entity set. These annotations override annotations targeting the action or function overloads directly.

+

External targeting is also possible for action and function overloads that are bound to (properties or navigation properties) of singletons or entities in a particular entity set. These annotations override annotations targeting the action or function overloads directly.

Note “all bound Action or Function overloads of given binding type via container” references all overloads where the binding parameter is an instance or a collection of the given type.

14.3 Constant Expression

Constant expressions allow assigning a constant value to an applied term.

diff --git a/docs/odata-csdl-xml/odata-csdl-xml.md b/docs/odata-csdl-xml/odata-csdl-xml.md index 937013bbf..878e59c2e 100644 --- a/docs/odata-csdl-xml/odata-csdl-xml.md +++ b/docs/odata-csdl-xml/odata-csdl-xml.md @@ -3654,7 +3654,7 @@ Model element| Can be targeted with path expression (see also [section 14.4.1.1] -----|-----|----- [Action](#Action) overload| qualified name of action followed by parentheses containing the binding parameter type of a bound action overload to identify that bound overload, or by empty parentheses to identify the unbound overload|
`MySchema.MyAction(MySchema.MyBindingType)` 
`MySchema.MyAction(Collection(MySchema.BindingType))`
`MySchema.MyAction()`
all overloads of an [Action](#Action)| qualified name of action|
`MySchema.MyAction`
-bound [Action](#Action) overload via container| Navigation Property via container or Property via container, followed by bound Action overload|
`MySchema.MyEntityContainer/MyEntitySet` 
` /MyNavigationProperty`
` /MySchema.MyAction(Collection(MySchema.MyBindingType))`
+bound [Action](#Action) overload via container| Navigation Property via container or Property via container, followed by bound Action overload|
`MySchema.MyEntityContainer/MyEntitySet` 
` /MyNavigationProperty`
` /MySchema.MyAction(MySchema.MyBindingType)`
`MySchema.MyEntityContainer/MyEntitySet`
` /MyNavigationProperty`
` /MySchema.MyAction(Collection(MySchema.MyBindingType))`
all bound [Action](#Action) overloads with given binding type via container| Navigation Property via container or Property via container, followed by all overloads of an Action|
`MySchema.MyEntityContainer/MyEntitySet` 
` /MyNavigationProperty`
` /MySchema.MyAction`
[Action Import](#ActionImport)| qualified name of entity container followed by a segment containing the action import name|
`MySchema.MyEntityContainer/MyActionImport`
[Annotation](#Annotation) on a model element| path expression identifying the model element followed by a segment containing an at (`@`) prepended to the qualified name of a term, optionally suffixed with a hash (`#`) and the qualifier of an annotation|
`MySchema.MyEntityType/@MyVocabulary.MyTerm` 
`MySchema.MyEntityType/@MyVocabulary.MyTerm#MyQualifier`
@@ -3666,7 +3666,7 @@ all bound [Action](#Action) overloads with given binding type via container| Nav [Enumeration Type Member](#EnumerationTypeMember)| qualified name of enumeration type followed by a segment containing the name of a child element|
`MySchema.MyEnumType/MyMember`
[Function](#Function) overload| qualified name of function followed by parentheses containing the comma-separated list of the parameter types of a bound or unbound function overload in the order of their definition in the function overload|
`MySchema.MyFunction(MySchema.MyBindingParamType,` 
` First.NonBinding.ParamType)`
`MySchema.MyFunction(First.NonBinding.ParamType,`
` Second.NonBinding.ParamType)`
all overloads of a [Function](#Function)| qualified name of function|
`MySchema.MyFunction`
-bound [Function](#Function) overload via container| Navigation Property via container or Property via container, followed by bound Function overload|
`MySchema.MyEntityContainer/MyEntitySet` 
` /MyComplexProperty`
` /MySchema.MyFunction(MySchema.MyBindingType)`
+bound [Function](#Function) overload via container| Navigation Property via container or Property via container, followed by bound Function overload|
`MySchema.MyEntityContainer/MyEntitySet` 
` /MyComplexProperty`
` /MySchema.MyFunction(MySchema.MyBindingType)`
`MySchema.MyEntityContainer/MyEntitySet`
` /MyComplexProperty`
` /MySchema.MyFunc(Collection(MySchema.MyBindingType))`
all bound [Function](#Function) overloads of given binding type via container| Navigation Property via container or Property via container, followed by all overloads of a Function|
`MySchema.MyEntityContainer/MyEntitySet` 
` /MyComplexProperty`
` /MySchema.MyFunction`
[Function Import](#FunctionImport)| qualified name of entity container followed by a segment containing the function import name|
`MySchema.MyEntityContainer/MyFunctionImport`
 [Navigation Property](#NavigationProperty) via container| qualified name of entity container followed by a segment containing a singleton or entity set name and zero or more segments containing the name of a structural or navigation property, or a type-cast or term-cast| 
`MySchema.MyEntityContainer/MyEntitySet` 
` /MyNavigationProperty`
`MySchema.MyEntityContainer/MyEntitySet`
` /MySchema.MyEntityType/MyNavProperty`
`MySchema.MyEntityContainer/MyEntitySet`
` /MyComplexProperty/MyNavProperty`
`MySchema.MyEntityContainer/MySingleton`
` /MyComplexProperty/MyNavProperty`
@@ -3689,7 +3689,7 @@ annotations override annotations on the properties or navigation properties targeted via the declaring structured type. External targeting is also possible for action and function overloads that -are bound to properties or navigation properties of singletons or entities in +are bound to (properties or navigation properties) of singletons or entities in a particular entity set. These annotations override annotations targeting the action or function overloads directly. diff --git a/odata-csdl/14 Vocabulary and Annotation.md b/odata-csdl/14 Vocabulary and Annotation.md index ab0b0dde3..52b828e69 100644 --- a/odata-csdl/14 Vocabulary and Annotation.md +++ b/odata-csdl/14 Vocabulary and Annotation.md @@ -584,6 +584,9 @@ bound [Action](#Action) overload via container| Navigation Property via container or Property via container, followed by bound Action overload|
`MySchema.MyEntityContainer/MyEntitySet` 
 
` /MyNavigationProperty` +
` /MySchema.MyAction(MySchema.MyBindingType)` +
`MySchema.MyEntityContainer/MyEntitySet` +
` /MyNavigationProperty`
` /MySchema.MyAction(Collection(MySchema.MyBindingType))`
all bound [Action](#Action) overloads with given binding type via container| Navigation Property via container or Property via container, followed by all overloads of an Action| @@ -628,7 +631,10 @@ bound [Function](#Function) overload via container| Navigation Property via container or Property via container, followed by bound Function overload|
`MySchema.MyEntityContainer/MyEntitySet` 
 
` /MyComplexProperty` -
` /MySchema.MyFunction(MySchema.MyBindingType)`
+
` /MySchema.MyFunction(MySchema.MyBindingType)` +
`MySchema.MyEntityContainer/MyEntitySet` +
` /MyComplexProperty` +
` /MySchema.MyFunc(Collection(MySchema.MyBindingType))`
all bound [Function](#Function) overloads of given binding type via container| Navigation Property via container or Property via container, followed by all overloads of a Function|
`MySchema.MyEntityContainer/MyEntitySet` 
@@ -695,7 +701,7 @@ annotations override annotations on the properties or navigation
 properties targeted via the declaring structured type.
 
 External targeting is also possible for action and function overloads that
-are bound to properties or navigation properties of singletons or entities in
+are bound to (properties or navigation properties) of singletons or entities in
 a particular entity set. These annotations override annotations targeting the
 action or function overloads directly.
 

From 1680d8e03c30f873c331538737f779096af26180 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Heiko=20Thei=C3=9Fen?= 
Date: Sat, 13 Jan 2024 11:28:50 +0100
Subject: [PATCH 03/15] Actions/Functions bound to a property via structured
 type

---
 docs/odata-csdl-json/odata-csdl-json.html  | 36 +++++++----------
 docs/odata-csdl-json/odata-csdl-json.md    | 24 +++++++----
 docs/odata-csdl-xml/odata-csdl-xml.html    | 36 +++++++----------
 docs/odata-csdl-xml/odata-csdl-xml.md      | 24 +++++++----
 odata-csdl/14 Vocabulary and Annotation.md | 46 ++++++++--------------
 5 files changed, 81 insertions(+), 85 deletions(-)

diff --git a/docs/odata-csdl-json/odata-csdl-json.html b/docs/odata-csdl-json/odata-csdl-json.html
index 7a2bd8fd3..22372bfd1 100644
--- a/docs/odata-csdl-json/odata-csdl-json.html
+++ b/docs/odata-csdl-json/odata-csdl-json.html
@@ -2276,16 +2276,6 @@ 

14.2.2 Target

MySchema.MyAction
-bound Action overload via container -Navigation Property via container or Property via container, followed by bound Action overload -
MySchema.MyEntityContainer/MyEntitySet 
/MyNavigationProperty
/MySchema.MyAction(MySchema.MyBindingType)
MySchema.MyEntityContainer/MyEntitySet
/MyNavigationProperty
/MySchema.MyAction(Collection(MySchema.MyBindingType))
- - -all bound Action overloads with given binding type via container -Navigation Property via container or Property via container, followed by all overloads of an Action -
MySchema.MyEntityContainer/MyEntitySet 
/MyNavigationProperty
/MySchema.MyAction
- - Action Import qualified name of entity container followed by a segment containing the action import name
MySchema.MyEntityContainer/MyActionImport
@@ -2336,16 +2326,6 @@

14.2.2 Target

MySchema.MyFunction
-bound Function overload via container -Navigation Property via container or Property via container, followed by bound Function overload -
MySchema.MyEntityContainer/MyEntitySet 
/MyComplexProperty
/MySchema.MyFunction(MySchema.MyBindingType)
MySchema.MyEntityContainer/MyEntitySet
/MyComplexProperty
/MySchema.MyFunc(Collection(MySchema.MyBindingType))
- - -all bound Function overloads of given binding type via container -Navigation Property via container or Property via container, followed by all overloads of a Function -
MySchema.MyEntityContainer/MyEntitySet 
/MyComplexProperty
/MySchema.MyFunction
- - Function Import qualified name of entity container followed by a segment containing the function import name
MySchema.MyEntityContainer/MyFunctionImport
@@ -2409,7 +2389,21 @@ 

14.2.2 Target

All qualified names used in a target path MUST be in scope.

External targeting is possible for properties and navigation properties of singletons or entities in a particular entity set. These annotations override annotations on the properties or navigation properties targeted via the declaring structured type.

-

External targeting is also possible for action and function overloads that are bound to (properties or navigation properties) of singletons or entities in a particular entity set. These annotations override annotations targeting the action or function overloads directly.

+

External targeting is also possible for action and function overloads that are bound to a certain type of model element. The target path then consists of two path expressions separated by a forward slash. The first path expression references one of the following model elements:

+
    +
  • Navigation Property via container
  • +
  • Property via container
  • +
  • Navigation Property via structured type
  • +
  • Property via structured type
  • +
+

and the second path expression references one of the following model elements:

+
    +
  • Action overload
  • +
  • all overloads of an Action
  • +
  • Function overload
  • +
  • all overloads of a Function
  • +
+

where the Action or Function overload is bound with binding parameter type equal to the type of the first path expression. These annotations override annotations targeting the action or function overloads directly.

Note “all bound Action or Function overloads of given binding type via container” references all overloads where the binding parameter is an instance or a collection of the given type.

14.3 Constant Expression

Constant expressions allow assigning a constant value to an applied term.

diff --git a/docs/odata-csdl-json/odata-csdl-json.md b/docs/odata-csdl-json/odata-csdl-json.md index 4a5192b7e..f6a564525 100644 --- a/docs/odata-csdl-json/odata-csdl-json.md +++ b/docs/odata-csdl-json/odata-csdl-json.md @@ -3841,8 +3841,6 @@ Model element| Can be targeted with path expression (see also [section 14.4.1.1] -----|-----|----- [Action](#Action) overload| qualified name of action followed by parentheses containing the binding parameter type of a bound action overload to identify that bound overload, or by empty parentheses to identify the unbound overload|
`MySchema.MyAction(MySchema.MyBindingType)` 
`MySchema.MyAction(Collection(MySchema.BindingType))`
`MySchema.MyAction()`
all overloads of an [Action](#Action)| qualified name of action|
`MySchema.MyAction`
-bound [Action](#Action) overload via container| Navigation Property via container or Property via container, followed by bound Action overload|
`MySchema.MyEntityContainer/MyEntitySet` 
` /MyNavigationProperty`
` /MySchema.MyAction(MySchema.MyBindingType)`
`MySchema.MyEntityContainer/MyEntitySet`
` /MyNavigationProperty`
` /MySchema.MyAction(Collection(MySchema.MyBindingType))`
-all bound [Action](#Action) overloads with given binding type via container| Navigation Property via container or Property via container, followed by all overloads of an Action|
`MySchema.MyEntityContainer/MyEntitySet` 
` /MyNavigationProperty`
` /MySchema.MyAction`
[Action Import](#ActionImport)| qualified name of entity container followed by a segment containing the action import name|
`MySchema.MyEntityContainer/MyActionImport`
[Annotation](#Annotation) on a model element| path expression identifying the model element followed by a segment containing an at (`@`) prepended to the qualified name of a term, optionally suffixed with a hash (`#`) and the qualifier of an annotation|
`MySchema.MyEntityType/@MyVocabulary.MyTerm` 
`MySchema.MyEntityType/@MyVocabulary.MyTerm#MyQualifier`
[Complex Type](#ComplexType)| qualified name of complex type|
`MySchema.MyComplexType`
@@ -3853,8 +3851,6 @@ all bound [Action](#Action) overloads with given binding type via container| Nav [Enumeration Type Member](#EnumerationTypeMember)| qualified name of enumeration type followed by a segment containing the name of a child element|
`MySchema.MyEnumType/MyMember`
[Function](#Function) overload| qualified name of function followed by parentheses containing the comma-separated list of the parameter types of a bound or unbound function overload in the order of their definition in the function overload|
`MySchema.MyFunction(MySchema.MyBindingParamType,` 
` First.NonBinding.ParamType)`
`MySchema.MyFunction(First.NonBinding.ParamType,`
` Second.NonBinding.ParamType)`
all overloads of a [Function](#Function)| qualified name of function|
`MySchema.MyFunction`
-bound [Function](#Function) overload via container| Navigation Property via container or Property via container, followed by bound Function overload|
`MySchema.MyEntityContainer/MyEntitySet` 
` /MyComplexProperty`
` /MySchema.MyFunction(MySchema.MyBindingType)`
`MySchema.MyEntityContainer/MyEntitySet`
` /MyComplexProperty`
` /MySchema.MyFunc(Collection(MySchema.MyBindingType))`
-all bound [Function](#Function) overloads of given binding type via container| Navigation Property via container or Property via container, followed by all overloads of a Function|
`MySchema.MyEntityContainer/MyEntitySet` 
` /MyComplexProperty`
` /MySchema.MyFunction`
[Function Import](#FunctionImport)| qualified name of entity container followed by a segment containing the function import name|
`MySchema.MyEntityContainer/MyFunctionImport`
 [Navigation Property](#NavigationProperty) via container| qualified name of entity container followed by a segment containing a singleton or entity set name and zero or more segments containing the name of a structural or navigation property, or a type-cast or term-cast| 
`MySchema.MyEntityContainer/MyEntitySet` 
` /MyNavigationProperty`
`MySchema.MyEntityContainer/MyEntitySet`
` /MySchema.MyEntityType/MyNavProperty`
`MySchema.MyEntityContainer/MyEntitySet`
` /MyComplexProperty/MyNavProperty`
`MySchema.MyEntityContainer/MySingleton`
` /MyComplexProperty/MyNavProperty`
[Navigation Property](#NavigationProperty) via structured type| qualified name of structured type followed by zero or more segments containing the name of a structural or navigation property, or a type-cast or term-cast|
`MySchema.MyEntityType/MyNavigationProperty` 
`MySchema.MyComplexType/MyNavigationProperty`
@@ -3876,9 +3872,23 @@ annotations override annotations on the properties or navigation properties targeted via the declaring structured type. External targeting is also possible for action and function overloads that -are bound to (properties or navigation properties) of singletons or entities in -a particular entity set. These annotations override annotations targeting the -action or function overloads directly. +are bound to a certain type of model element. The target path then consists of +two path expressions separated by a forward slash. The first path expression +references one of the following model elements: +- Navigation Property via container +- Property via container +- Navigation Property via structured type +- Property via structured type + +and the second path expression references one of the following model elements: +- Action overload +- all overloads of an Action +- Function overload +- all overloads of a Function + +where the Action or Function overload is bound with binding parameter type +equal to the type of the first path expression. These annotations override +annotations targeting the action or function overloads directly. Note "all bound Action or Function overloads of given binding type via container" references all overloads where the binding parameter is an instance diff --git a/docs/odata-csdl-xml/odata-csdl-xml.html b/docs/odata-csdl-xml/odata-csdl-xml.html index 9c391f224..80e714e1d 100644 --- a/docs/odata-csdl-xml/odata-csdl-xml.html +++ b/docs/odata-csdl-xml/odata-csdl-xml.html @@ -2092,16 +2092,6 @@

14.2.2 Target

MySchema.MyAction
-bound Action overload via container -Navigation Property via container or Property via container, followed by bound Action overload -
MySchema.MyEntityContainer/MyEntitySet 
/MyNavigationProperty
/MySchema.MyAction(MySchema.MyBindingType)
MySchema.MyEntityContainer/MyEntitySet
/MyNavigationProperty
/MySchema.MyAction(Collection(MySchema.MyBindingType))
- - -all bound Action overloads with given binding type via container -Navigation Property via container or Property via container, followed by all overloads of an Action -
MySchema.MyEntityContainer/MyEntitySet 
/MyNavigationProperty
/MySchema.MyAction
- - Action Import qualified name of entity container followed by a segment containing the action import name
MySchema.MyEntityContainer/MyActionImport
@@ -2152,16 +2142,6 @@

14.2.2 Target

MySchema.MyFunction
-bound Function overload via container -Navigation Property via container or Property via container, followed by bound Function overload -
MySchema.MyEntityContainer/MyEntitySet 
/MyComplexProperty
/MySchema.MyFunction(MySchema.MyBindingType)
MySchema.MyEntityContainer/MyEntitySet
/MyComplexProperty
/MySchema.MyFunc(Collection(MySchema.MyBindingType))
- - -all bound Function overloads of given binding type via container -Navigation Property via container or Property via container, followed by all overloads of a Function -
MySchema.MyEntityContainer/MyEntitySet 
/MyComplexProperty
/MySchema.MyFunction
- - Function Import qualified name of entity container followed by a segment containing the function import name
MySchema.MyEntityContainer/MyFunctionImport
@@ -2225,7 +2205,21 @@ 

14.2.2 Target

All qualified names used in a target path MUST be in scope.

External targeting is possible for properties and navigation properties of singletons or entities in a particular entity set. These annotations override annotations on the properties or navigation properties targeted via the declaring structured type.

-

External targeting is also possible for action and function overloads that are bound to (properties or navigation properties) of singletons or entities in a particular entity set. These annotations override annotations targeting the action or function overloads directly.

+

External targeting is also possible for action and function overloads that are bound to a certain type of model element. The target path then consists of two path expressions separated by a forward slash. The first path expression references one of the following model elements:

+
    +
  • Navigation Property via container
  • +
  • Property via container
  • +
  • Navigation Property via structured type
  • +
  • Property via structured type
  • +
+

and the second path expression references one of the following model elements:

+
    +
  • Action overload
  • +
  • all overloads of an Action
  • +
  • Function overload
  • +
  • all overloads of a Function
  • +
+

where the Action or Function overload is bound with binding parameter type equal to the type of the first path expression. These annotations override annotations targeting the action or function overloads directly.

Note “all bound Action or Function overloads of given binding type via container” references all overloads where the binding parameter is an instance or a collection of the given type.

14.3 Constant Expression

Constant expressions allow assigning a constant value to an applied term.

diff --git a/docs/odata-csdl-xml/odata-csdl-xml.md b/docs/odata-csdl-xml/odata-csdl-xml.md index 878e59c2e..7f7128c20 100644 --- a/docs/odata-csdl-xml/odata-csdl-xml.md +++ b/docs/odata-csdl-xml/odata-csdl-xml.md @@ -3654,8 +3654,6 @@ Model element| Can be targeted with path expression (see also [section 14.4.1.1] -----|-----|----- [Action](#Action) overload| qualified name of action followed by parentheses containing the binding parameter type of a bound action overload to identify that bound overload, or by empty parentheses to identify the unbound overload|
`MySchema.MyAction(MySchema.MyBindingType)` 
`MySchema.MyAction(Collection(MySchema.BindingType))`
`MySchema.MyAction()`
all overloads of an [Action](#Action)| qualified name of action|
`MySchema.MyAction`
-bound [Action](#Action) overload via container| Navigation Property via container or Property via container, followed by bound Action overload|
`MySchema.MyEntityContainer/MyEntitySet` 
` /MyNavigationProperty`
` /MySchema.MyAction(MySchema.MyBindingType)`
`MySchema.MyEntityContainer/MyEntitySet`
` /MyNavigationProperty`
` /MySchema.MyAction(Collection(MySchema.MyBindingType))`
-all bound [Action](#Action) overloads with given binding type via container| Navigation Property via container or Property via container, followed by all overloads of an Action|
`MySchema.MyEntityContainer/MyEntitySet` 
` /MyNavigationProperty`
` /MySchema.MyAction`
[Action Import](#ActionImport)| qualified name of entity container followed by a segment containing the action import name|
`MySchema.MyEntityContainer/MyActionImport`
[Annotation](#Annotation) on a model element| path expression identifying the model element followed by a segment containing an at (`@`) prepended to the qualified name of a term, optionally suffixed with a hash (`#`) and the qualifier of an annotation|
`MySchema.MyEntityType/@MyVocabulary.MyTerm` 
`MySchema.MyEntityType/@MyVocabulary.MyTerm#MyQualifier`
[Complex Type](#ComplexType)| qualified name of complex type|
`MySchema.MyComplexType`
@@ -3666,8 +3664,6 @@ all bound [Action](#Action) overloads with given binding type via container| Nav [Enumeration Type Member](#EnumerationTypeMember)| qualified name of enumeration type followed by a segment containing the name of a child element|
`MySchema.MyEnumType/MyMember`
[Function](#Function) overload| qualified name of function followed by parentheses containing the comma-separated list of the parameter types of a bound or unbound function overload in the order of their definition in the function overload|
`MySchema.MyFunction(MySchema.MyBindingParamType,` 
` First.NonBinding.ParamType)`
`MySchema.MyFunction(First.NonBinding.ParamType,`
` Second.NonBinding.ParamType)`
all overloads of a [Function](#Function)| qualified name of function|
`MySchema.MyFunction`
-bound [Function](#Function) overload via container| Navigation Property via container or Property via container, followed by bound Function overload|
`MySchema.MyEntityContainer/MyEntitySet` 
` /MyComplexProperty`
` /MySchema.MyFunction(MySchema.MyBindingType)`
`MySchema.MyEntityContainer/MyEntitySet`
` /MyComplexProperty`
` /MySchema.MyFunc(Collection(MySchema.MyBindingType))`
-all bound [Function](#Function) overloads of given binding type via container| Navigation Property via container or Property via container, followed by all overloads of a Function|
`MySchema.MyEntityContainer/MyEntitySet` 
` /MyComplexProperty`
` /MySchema.MyFunction`
[Function Import](#FunctionImport)| qualified name of entity container followed by a segment containing the function import name|
`MySchema.MyEntityContainer/MyFunctionImport`
 [Navigation Property](#NavigationProperty) via container| qualified name of entity container followed by a segment containing a singleton or entity set name and zero or more segments containing the name of a structural or navigation property, or a type-cast or term-cast| 
`MySchema.MyEntityContainer/MyEntitySet` 
` /MyNavigationProperty`
`MySchema.MyEntityContainer/MyEntitySet`
` /MySchema.MyEntityType/MyNavProperty`
`MySchema.MyEntityContainer/MyEntitySet`
` /MyComplexProperty/MyNavProperty`
`MySchema.MyEntityContainer/MySingleton`
` /MyComplexProperty/MyNavProperty`
[Navigation Property](#NavigationProperty) via structured type| qualified name of structured type followed by zero or more segments containing the name of a structural or navigation property, or a type-cast or term-cast|
`MySchema.MyEntityType/MyNavigationProperty` 
`MySchema.MyComplexType/MyNavigationProperty`
@@ -3689,9 +3685,23 @@ annotations override annotations on the properties or navigation properties targeted via the declaring structured type. External targeting is also possible for action and function overloads that -are bound to (properties or navigation properties) of singletons or entities in -a particular entity set. These annotations override annotations targeting the -action or function overloads directly. +are bound to a certain type of model element. The target path then consists of +two path expressions separated by a forward slash. The first path expression +references one of the following model elements: +- Navigation Property via container +- Property via container +- Navigation Property via structured type +- Property via structured type + +and the second path expression references one of the following model elements: +- Action overload +- all overloads of an Action +- Function overload +- all overloads of a Function + +where the Action or Function overload is bound with binding parameter type +equal to the type of the first path expression. These annotations override +annotations targeting the action or function overloads directly. Note "all bound Action or Function overloads of given binding type via container" references all overloads where the binding parameter is an instance diff --git a/odata-csdl/14 Vocabulary and Annotation.md b/odata-csdl/14 Vocabulary and Annotation.md index 52b828e69..86e0b38e5 100644 --- a/odata-csdl/14 Vocabulary and Annotation.md +++ b/odata-csdl/14 Vocabulary and Annotation.md @@ -580,19 +580,6 @@ qualified name of action followed by parentheses containing the binding paramete all overloads of an [Action](#Action)| qualified name of action|
`MySchema.MyAction`
-bound [Action](#Action) overload via container| -Navigation Property via container or Property via container, followed by bound Action overload| -
`MySchema.MyEntityContainer/MyEntitySet` 
-
` /MyNavigationProperty` -
` /MySchema.MyAction(MySchema.MyBindingType)` -
`MySchema.MyEntityContainer/MyEntitySet` -
` /MyNavigationProperty` -
` /MySchema.MyAction(Collection(MySchema.MyBindingType))`
-all bound [Action](#Action) overloads with given binding type via container| -Navigation Property via container or Property via container, followed by all overloads of an Action| -
`MySchema.MyEntityContainer/MyEntitySet` 
-
` /MyNavigationProperty` -
` /MySchema.MyAction`
[Action Import](#ActionImport)| qualified name of entity container followed by a segment containing the action import name|
`MySchema.MyEntityContainer/MyActionImport`
@@ -627,19 +614,6 @@ qualified name of function followed by parentheses containing the comma-separate all overloads of a [Function](#Function)| qualified name of function|
`MySchema.MyFunction`
-bound [Function](#Function) overload via container| -Navigation Property via container or Property via container, followed by bound Function overload| -
`MySchema.MyEntityContainer/MyEntitySet` 
-
` /MyComplexProperty` -
` /MySchema.MyFunction(MySchema.MyBindingType)` -
`MySchema.MyEntityContainer/MyEntitySet` -
` /MyComplexProperty` -
` /MySchema.MyFunc(Collection(MySchema.MyBindingType))`
-all bound [Function](#Function) overloads of given binding type via container| -Navigation Property via container or Property via container, followed by all overloads of a Function| -
`MySchema.MyEntityContainer/MyEntitySet` 
-
` /MyComplexProperty` -
` /MySchema.MyFunction`
[Function Import](#FunctionImport)| qualified name of entity container followed by a segment containing the function import name|
`MySchema.MyEntityContainer/MyFunctionImport`
@@ -701,9 +675,23 @@ annotations override annotations on the properties or navigation
 properties targeted via the declaring structured type.
 
 External targeting is also possible for action and function overloads that
-are bound to (properties or navigation properties) of singletons or entities in
-a particular entity set. These annotations override annotations targeting the
-action or function overloads directly.
+are bound to a certain type of model element. The target path then consists of
+two path expressions separated by a forward slash. The first path expression
+references one of the following model elements:
+- Navigation Property via container
+- Property via container
+- Navigation Property via structured type
+- Property via structured type
+
+and the second path expression references one of the following model elements:
+- Action overload
+- all overloads of an Action
+- Function overload
+- all overloads of a Function
+
+where the Action or Function overload is bound with binding parameter type
+equal to the type of the first path expression. These annotations override
+annotations targeting the action or function overloads directly.
 
 Note "all bound Action or Function overloads of given binding type via
 container" references all overloads where the binding parameter is an instance

From edaf88016f825d2aad2827f4a9820e405de6124b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Heiko=20Thei=C3=9Fen?= 
Date: Mon, 15 Jan 2024 08:50:24 +0100
Subject: [PATCH 04/15] Rephrased

---
 docs/odata-csdl-json/odata-csdl-json.html  | 11 +++++++----
 docs/odata-csdl-json/odata-csdl-json.md    | 19 ++++++++++---------
 docs/odata-csdl-xml/odata-csdl-xml.html    | 11 +++++++----
 docs/odata-csdl-xml/odata-csdl-xml.md      | 19 ++++++++++---------
 odata-csdl/14 Vocabulary and Annotation.md | 19 ++++++++++---------
 5 files changed, 44 insertions(+), 35 deletions(-)

diff --git a/docs/odata-csdl-json/odata-csdl-json.html b/docs/odata-csdl-json/odata-csdl-json.html
index 22372bfd1..1aff5cbbd 100644
--- a/docs/odata-csdl-json/odata-csdl-json.html
+++ b/docs/odata-csdl-json/odata-csdl-json.html
@@ -2389,7 +2389,7 @@ 

14.2.2 Target

All qualified names used in a target path MUST be in scope.

External targeting is possible for properties and navigation properties of singletons or entities in a particular entity set. These annotations override annotations on the properties or navigation properties targeted via the declaring structured type.

-

External targeting is also possible for action and function overloads that are bound to a certain type of model element. The target path then consists of two path expressions separated by a forward slash. The first path expression references one of the following model elements:

+

External targeting is also possible for action and function overloads that are bound to a certain type of model element. The target path then consists of two path expressions from the table above separated by a forward slash. The first path expression references one of the following model elements:

  • Navigation Property via container
  • Property via container
  • @@ -2399,12 +2399,15 @@

    14.2.2 Target

    and the second path expression references one of the following model elements:

    • Action overload
    • -
    • all overloads of an Action
    • Function overload
    • +
    +

    where the Action or Function overload is bound with binding parameter type equal to the type of the first path expression, or the second path expression references

    +
      +
    • all overloads of an Action or
    • all overloads of a Function
    -

    where the Action or Function overload is bound with binding parameter type equal to the type of the first path expression. These annotations override annotations targeting the action or function overloads directly.

    -

    Note “all bound Action or Function overloads of given binding type via container” references all overloads where the binding parameter is an instance or a collection of the given type.

    +

    where the binding parameter is an instance or a collection of the given type.

    +

    These annotations override annotations targeting the action or function overloads directly.

    14.3 Constant Expression

    Constant expressions allow assigning a constant value to an applied term.

    14.3.1 Binary

    diff --git a/docs/odata-csdl-json/odata-csdl-json.md b/docs/odata-csdl-json/odata-csdl-json.md index f6a564525..adf2b369d 100644 --- a/docs/odata-csdl-json/odata-csdl-json.md +++ b/docs/odata-csdl-json/odata-csdl-json.md @@ -3873,8 +3873,8 @@ properties targeted via the declaring structured type. External targeting is also possible for action and function overloads that are bound to a certain type of model element. The target path then consists of -two path expressions separated by a forward slash. The first path expression -references one of the following model elements: +two path expressions from the table above separated by a forward slash. The +first path expression references one of the following model elements: - Navigation Property via container - Property via container - Navigation Property via structured type @@ -3882,17 +3882,18 @@ references one of the following model elements: and the second path expression references one of the following model elements: - Action overload -- all overloads of an Action - Function overload -- all overloads of a Function where the Action or Function overload is bound with binding parameter type -equal to the type of the first path expression. These annotations override -annotations targeting the action or function overloads directly. +equal to the type of the first path expression, or the second path expression +references +- all overloads of an Action or +- all overloads of a Function + +where the binding parameter is an instance or a collection of the given type. -Note "all bound Action or Function overloads of given binding type via -container" references all overloads where the binding parameter is an instance -or a collection of the given type. +These annotations override annotations targeting the action or function +overloads directly. ## 14.3 Constant Expression diff --git a/docs/odata-csdl-xml/odata-csdl-xml.html b/docs/odata-csdl-xml/odata-csdl-xml.html index 80e714e1d..27f4552f5 100644 --- a/docs/odata-csdl-xml/odata-csdl-xml.html +++ b/docs/odata-csdl-xml/odata-csdl-xml.html @@ -2205,7 +2205,7 @@

    14.2.2 Target

    All qualified names used in a target path MUST be in scope.

    External targeting is possible for properties and navigation properties of singletons or entities in a particular entity set. These annotations override annotations on the properties or navigation properties targeted via the declaring structured type.

    -

    External targeting is also possible for action and function overloads that are bound to a certain type of model element. The target path then consists of two path expressions separated by a forward slash. The first path expression references one of the following model elements:

    +

    External targeting is also possible for action and function overloads that are bound to a certain type of model element. The target path then consists of two path expressions from the table above separated by a forward slash. The first path expression references one of the following model elements:

    • Navigation Property via container
    • Property via container
    • @@ -2215,12 +2215,15 @@

      14.2.2 Target

      and the second path expression references one of the following model elements:

      • Action overload
      • -
      • all overloads of an Action
      • Function overload
      • +
      +

      where the Action or Function overload is bound with binding parameter type equal to the type of the first path expression, or the second path expression references

      +
        +
      • all overloads of an Action or
      • all overloads of a Function
      -

      where the Action or Function overload is bound with binding parameter type equal to the type of the first path expression. These annotations override annotations targeting the action or function overloads directly.

      -

      Note “all bound Action or Function overloads of given binding type via container” references all overloads where the binding parameter is an instance or a collection of the given type.

      +

      where the binding parameter is an instance or a collection of the given type.

      +

      These annotations override annotations targeting the action or function overloads directly.

      14.3 Constant Expression

      Constant expressions allow assigning a constant value to an applied term.

      14.3.1 Binary

      diff --git a/docs/odata-csdl-xml/odata-csdl-xml.md b/docs/odata-csdl-xml/odata-csdl-xml.md index 7f7128c20..b4f6b377e 100644 --- a/docs/odata-csdl-xml/odata-csdl-xml.md +++ b/docs/odata-csdl-xml/odata-csdl-xml.md @@ -3686,8 +3686,8 @@ properties targeted via the declaring structured type. External targeting is also possible for action and function overloads that are bound to a certain type of model element. The target path then consists of -two path expressions separated by a forward slash. The first path expression -references one of the following model elements: +two path expressions from the table above separated by a forward slash. The +first path expression references one of the following model elements: - Navigation Property via container - Property via container - Navigation Property via structured type @@ -3695,17 +3695,18 @@ references one of the following model elements: and the second path expression references one of the following model elements: - Action overload -- all overloads of an Action - Function overload -- all overloads of a Function where the Action or Function overload is bound with binding parameter type -equal to the type of the first path expression. These annotations override -annotations targeting the action or function overloads directly. +equal to the type of the first path expression, or the second path expression +references +- all overloads of an Action or +- all overloads of a Function + +where the binding parameter is an instance or a collection of the given type. -Note "all bound Action or Function overloads of given binding type via -container" references all overloads where the binding parameter is an instance -or a collection of the given type. +These annotations override annotations targeting the action or function +overloads directly. ## 14.3 Constant Expression diff --git a/odata-csdl/14 Vocabulary and Annotation.md b/odata-csdl/14 Vocabulary and Annotation.md index 86e0b38e5..8025e792f 100644 --- a/odata-csdl/14 Vocabulary and Annotation.md +++ b/odata-csdl/14 Vocabulary and Annotation.md @@ -676,8 +676,8 @@ properties targeted via the declaring structured type. External targeting is also possible for action and function overloads that are bound to a certain type of model element. The target path then consists of -two path expressions separated by a forward slash. The first path expression -references one of the following model elements: +two path expressions from the table above separated by a forward slash. The +first path expression references one of the following model elements: - Navigation Property via container - Property via container - Navigation Property via structured type @@ -685,17 +685,18 @@ references one of the following model elements: and the second path expression references one of the following model elements: - Action overload -- all overloads of an Action - Function overload -- all overloads of a Function where the Action or Function overload is bound with binding parameter type -equal to the type of the first path expression. These annotations override -annotations targeting the action or function overloads directly. +equal to the type of the first path expression, or the second path expression +references +- all overloads of an Action or +- all overloads of a Function + +where the binding parameter is an instance or a collection of the given type. -Note "all bound Action or Function overloads of given binding type via -container" references all overloads where the binding parameter is an instance -or a collection of the given type. +These annotations override annotations targeting the action or function +overloads directly. ## ##subsec Constant Expression From c858774e0e2aec7f18cea5a9f47d61396902c62a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Heiko=20Thei=C3=9Fen?= Date: Mon, 15 Jan 2024 09:05:18 +0100 Subject: [PATCH 05/15] style --- docs/odata-csdl-json/odata-csdl-json.html | 4 ++-- docs/odata-csdl-json/odata-csdl-json.md | 4 ++-- docs/odata-csdl-xml/odata-csdl-xml.html | 4 ++-- docs/odata-csdl-xml/odata-csdl-xml.md | 4 ++-- odata-csdl/14 Vocabulary and Annotation.md | 6 +++--- 5 files changed, 11 insertions(+), 11 deletions(-) diff --git a/docs/odata-csdl-json/odata-csdl-json.html b/docs/odata-csdl-json/odata-csdl-json.html index 1aff5cbbd..4fcbe02b7 100644 --- a/docs/odata-csdl-json/odata-csdl-json.html +++ b/docs/odata-csdl-json/odata-csdl-json.html @@ -2261,7 +2261,7 @@

      14.2.2 Target

      Model element Can be targeted with path expression (see also section 14.4.1.1) -

      Example 42: Target expressions

      +

      Example 42: Target expressions

      @@ -2353,7 +2353,7 @@

      14.2.2 Target

      Property via container qualified name of entity container followed by a segment containing a singleton or entity set name and zero or more segments containing the name of a structural or navigation property, or a type-cast or term-cast -
      MySchema.MyEntityContainer/MyEntitySet 
      /MyProperty
      MySchema.MyEntityContainer/MyEntitySet
      /MySchema.MyEntityType/MyProperty
      MySchema.MyEntityContainer/MyEntitySet
      /MyComplexProperty/MyProperty
      +
      MySchema.MyEntityContainer/MyEntitySet 
      /MyProperty
      MySchema.MyEntityContainer/MyEntitySet
      /MySchema.MyEntityType/MyProperty
      MySchema.MyEntityContainer/MyEntitySet
      /MyComplexProperty/MyProperty
      Property via structured type diff --git a/docs/odata-csdl-json/odata-csdl-json.md b/docs/odata-csdl-json/odata-csdl-json.md index adf2b369d..d16717dd5 100644 --- a/docs/odata-csdl-json/odata-csdl-json.md +++ b/docs/odata-csdl-json/odata-csdl-json.md @@ -3837,7 +3837,7 @@ These are the direct children of a schema with a unique name (i.e. except actions and functions whose overloads to not possess a natural identifier), and all direct children of an entity container. -Model element| Can be targeted with path expression (see also [section 14.4.1.1](#PathSyntax))|

      Example 42: Target expressions

      +Model element| Can be targeted with path expression (see also [section 14.4.1.1](#PathSyntax))|

      Example 42: Target expressions

      -----|-----|----- [Action](#Action) overload| qualified name of action followed by parentheses containing the binding parameter type of a bound action overload to identify that bound overload, or by empty parentheses to identify the unbound overload|
      `MySchema.MyAction(MySchema.MyBindingType)` 
      `MySchema.MyAction(Collection(MySchema.BindingType))`
      `MySchema.MyAction()`
      all overloads of an [Action](#Action)| qualified name of action|
      `MySchema.MyAction`
      @@ -3856,7 +3856,7 @@ all overloads of a [Function](#Function)| qualified name of function|
      `MySc
       [Navigation Property](#NavigationProperty) via structured type| qualified name of structured type followed by zero or more segments containing the name of a structural or navigation property, or a type-cast or term-cast| 
      `MySchema.MyEntityType/MyNavigationProperty` 
      `MySchema.MyComplexType/MyNavigationProperty`
      [Parameter](#Parameter)| qualified name of entity container followed by a segment containing an action or function import name followed by a segment containing a parameter name|
      `MySchema.MyEntityContainer/MyFunctionImport/MyParameter`
      [Parameter](#Parameter)| qualified name of action or function optionally followed by a parenthesized expression as in the first row followed by a segment containing the name of a child element|
      `MySchema.MyFunction/MyParameter`
      -[Property](#StructuralProperty) via container| qualified name of entity container followed by a segment containing a singleton or entity set name and zero or more segments containing the name of a structural or navigation property, or a type-cast or term-cast|
      `MySchema.MyEntityContainer/MyEntitySet` 
      ` /MyProperty`
      `MySchema.MyEntityContainer/MyEntitySet`
      ` /MySchema.MyEntityType/MyProperty`
      `MySchema.MyEntityContainer/MyEntitySet`
      ` /MyComplexProperty/MyProperty`
      +[Property](#StructuralProperty) via container| qualified name of entity container followed by a segment containing a singleton or entity set name and zero or more segments containing the name of a structural or navigation property, or a type-cast or term-cast|
      `MySchema.MyEntityContainer/MyEntitySet` 
      ` /MyProperty`
      `MySchema.MyEntityContainer/MyEntitySet`
      ` /MySchema.MyEntityType/MyProperty`
      `MySchema.MyEntityContainer/MyEntitySet`
      ` /MyComplexProperty/MyProperty`
      [Property](#StructuralProperty) via structured type| qualified name of structured type followed by zero or more segments containing the name of a structural or navigation property, or a type-cast or term-cast|
      `MySchema.MyEntityType/MyProperty` 
      `MySchema.MyComplexType/MyProperty`
      [Return Type](#ReturnType)| qualified name of entity container followed by a segment containing an action or function import name followed by a segment containing `$ReturnType`|
      `MySchema.MyEntityContainer/MyFunctionImport/$ReturnType`
      [Return Type](#ReturnType)| qualified name of action or function optionally followed by a parenthesized expression as in the first row followed by a segment containing `$ReturnType`|
      `MySchema.MyFunction/$ReturnType` 
      `MySchema.MyFunction(MySchema.MyBindingParamType,`
      ` First.NonBinding.ParamType)/$ReturnType`
      diff --git a/docs/odata-csdl-xml/odata-csdl-xml.html b/docs/odata-csdl-xml/odata-csdl-xml.html index 27f4552f5..7cdc7378d 100644 --- a/docs/odata-csdl-xml/odata-csdl-xml.html +++ b/docs/odata-csdl-xml/odata-csdl-xml.html @@ -2077,7 +2077,7 @@

      14.2.2 Target

      Model element Can be targeted with path expression (see also section 14.4.1.1) -

      Example 42: Target expressions

      +

      Example 42: Target expressions

      @@ -2169,7 +2169,7 @@

      14.2.2 Target

      Property via container qualified name of entity container followed by a segment containing a singleton or entity set name and zero or more segments containing the name of a structural or navigation property, or a type-cast or term-cast -
      MySchema.MyEntityContainer/MyEntitySet 
      /MyProperty
      MySchema.MyEntityContainer/MyEntitySet
      /MySchema.MyEntityType/MyProperty
      MySchema.MyEntityContainer/MyEntitySet
      /MyComplexProperty/MyProperty
      +
      MySchema.MyEntityContainer/MyEntitySet 
      /MyProperty
      MySchema.MyEntityContainer/MyEntitySet
      /MySchema.MyEntityType/MyProperty
      MySchema.MyEntityContainer/MyEntitySet
      /MyComplexProperty/MyProperty
      Property via structured type diff --git a/docs/odata-csdl-xml/odata-csdl-xml.md b/docs/odata-csdl-xml/odata-csdl-xml.md index b4f6b377e..14fb6ccb5 100644 --- a/docs/odata-csdl-xml/odata-csdl-xml.md +++ b/docs/odata-csdl-xml/odata-csdl-xml.md @@ -3650,7 +3650,7 @@ These are the direct children of a schema with a unique name (i.e. except actions and functions whose overloads to not possess a natural identifier), and all direct children of an entity container. -Model element| Can be targeted with path expression (see also [section 14.4.1.1](#PathSyntax))|

      Example 42: Target expressions

      +Model element| Can be targeted with path expression (see also [section 14.4.1.1](#PathSyntax))|

      Example 42: Target expressions

      -----|-----|----- [Action](#Action) overload| qualified name of action followed by parentheses containing the binding parameter type of a bound action overload to identify that bound overload, or by empty parentheses to identify the unbound overload|
      `MySchema.MyAction(MySchema.MyBindingType)` 
      `MySchema.MyAction(Collection(MySchema.BindingType))`
      `MySchema.MyAction()`
      all overloads of an [Action](#Action)| qualified name of action|
      `MySchema.MyAction`
      @@ -3669,7 +3669,7 @@ all overloads of a [Function](#Function)| qualified name of function|
      `MySc
       [Navigation Property](#NavigationProperty) via structured type| qualified name of structured type followed by zero or more segments containing the name of a structural or navigation property, or a type-cast or term-cast| 
      `MySchema.MyEntityType/MyNavigationProperty` 
      `MySchema.MyComplexType/MyNavigationProperty`
      [Parameter](#Parameter)| qualified name of entity container followed by a segment containing an action or function import name followed by a segment containing a parameter name|
      `MySchema.MyEntityContainer/MyFunctionImport/MyParameter`
      [Parameter](#Parameter)| qualified name of action or function optionally followed by a parenthesized expression as in the first row followed by a segment containing the name of a child element|
      `MySchema.MyFunction/MyParameter`
      -[Property](#StructuralProperty) via container| qualified name of entity container followed by a segment containing a singleton or entity set name and zero or more segments containing the name of a structural or navigation property, or a type-cast or term-cast|
      `MySchema.MyEntityContainer/MyEntitySet` 
      ` /MyProperty`
      `MySchema.MyEntityContainer/MyEntitySet`
      ` /MySchema.MyEntityType/MyProperty`
      `MySchema.MyEntityContainer/MyEntitySet`
      ` /MyComplexProperty/MyProperty`
      +[Property](#StructuralProperty) via container| qualified name of entity container followed by a segment containing a singleton or entity set name and zero or more segments containing the name of a structural or navigation property, or a type-cast or term-cast|
      `MySchema.MyEntityContainer/MyEntitySet` 
      ` /MyProperty`
      `MySchema.MyEntityContainer/MyEntitySet`
      ` /MySchema.MyEntityType/MyProperty`
      `MySchema.MyEntityContainer/MyEntitySet`
      ` /MyComplexProperty/MyProperty`
      [Property](#StructuralProperty) via structured type| qualified name of structured type followed by zero or more segments containing the name of a structural or navigation property, or a type-cast or term-cast|
      `MySchema.MyEntityType/MyProperty` 
      `MySchema.MyComplexType/MyProperty`
      [Return Type](#ReturnType)| qualified name of entity container followed by a segment containing an action or function import name followed by a segment containing `$ReturnType`|
      `MySchema.MyEntityContainer/MyFunctionImport/$ReturnType`
      [Return Type](#ReturnType)| qualified name of action or function optionally followed by a parenthesized expression as in the first row followed by a segment containing `$ReturnType`|
      `MySchema.MyFunction/$ReturnType` 
      `MySchema.MyFunction(MySchema.MyBindingParamType,`
      ` First.NonBinding.ParamType)/$ReturnType`
      diff --git a/odata-csdl/14 Vocabulary and Annotation.md b/odata-csdl/14 Vocabulary and Annotation.md index 8025e792f..0019c218b 100644 --- a/odata-csdl/14 Vocabulary and Annotation.md +++ b/odata-csdl/14 Vocabulary and Annotation.md @@ -570,7 +570,7 @@ identifier), and all direct children of an entity container. Model element| Can be targeted with path expression (see also [section ##PathSyntax])| -

      Example ##ex: Target expressions

      +

      Example ##ex: Target expressions

      -----|-----|----- [Action](#Action) overload| qualified name of action followed by parentheses containing the binding parameter type of a bound action overload to identify that bound overload, or by empty parentheses to identify the unbound overload| @@ -640,9 +640,9 @@ qualified name of action or function optionally followed by a parenthesized expr [Property](#StructuralProperty) via container| qualified name of entity container followed by a segment containing a singleton or entity set name and zero or more segments containing the name of a structural or navigation property, or a type-cast or term-cast|
      `MySchema.MyEntityContainer/MyEntitySet` 
      -
      ` /MyProperty` +
      ` /MyProperty`
      `MySchema.MyEntityContainer/MyEntitySet` -
      ` /MySchema.MyEntityType/MyProperty` +
      ` /MySchema.MyEntityType/MyProperty`
      `MySchema.MyEntityContainer/MyEntitySet`
      ` /MyComplexProperty/MyProperty`
      [Property](#StructuralProperty) via structured type| From cbd551cce1b528a614240b9074c73a8188229a85 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Heiko=20Thei=C3=9Fen?= Date: Mon, 15 Jan 2024 09:25:52 +0100 Subject: [PATCH 06/15] @ralfhandl's suggestions --- docs/odata-csdl-json/odata-csdl-json.html | 8 +++++--- docs/odata-csdl-json/odata-csdl-json.md | 11 +++++++---- docs/odata-csdl-xml/odata-csdl-xml.html | 8 +++++--- docs/odata-csdl-xml/odata-csdl-xml.md | 11 +++++++---- odata-csdl/14 Vocabulary and Annotation.md | 11 +++++++---- 5 files changed, 31 insertions(+), 18 deletions(-) diff --git a/docs/odata-csdl-json/odata-csdl-json.html b/docs/odata-csdl-json/odata-csdl-json.html index 4fcbe02b7..71c3fe89a 100644 --- a/docs/odata-csdl-json/odata-csdl-json.html +++ b/docs/odata-csdl-json/odata-csdl-json.html @@ -2391,9 +2391,11 @@

      14.2.2 Target

      External targeting is possible for properties and navigation properties of singletons or entities in a particular entity set. These annotations override annotations on the properties or navigation properties targeted via the declaring structured type.

      External targeting is also possible for action and function overloads that are bound to a certain type of model element. The target path then consists of two path expressions from the table above separated by a forward slash. The first path expression references one of the following model elements:

        +
      • Entity Set
      • +
      • Singleton
      • Navigation Property via container
      • -
      • Property via container
      • Navigation Property via structured type
      • +
      • Property via container
      • Property via structured type

      and the second path expression references one of the following model elements:

      @@ -2401,12 +2403,12 @@

      14.2.2 Target

    • Action overload
    • Function overload
    -

    where the Action or Function overload is bound with binding parameter type equal to the type of the first path expression, or the second path expression references

    +

    where the Action or Function overload is bound with binding parameter type equal to or derived from the type of the first path expression, or the second path expression references

    • all overloads of an Action or
    • all overloads of a Function
    -

    where the binding parameter is an instance or a collection of the given type.

    +

    where the binding parameter is an instance or a collection of the type of the first path expression or of a type derived from that.

    These annotations override annotations targeting the action or function overloads directly.

    14.3 Constant Expression

    Constant expressions allow assigning a constant value to an applied term.

    diff --git a/docs/odata-csdl-json/odata-csdl-json.md b/docs/odata-csdl-json/odata-csdl-json.md index d16717dd5..d232329e4 100644 --- a/docs/odata-csdl-json/odata-csdl-json.md +++ b/docs/odata-csdl-json/odata-csdl-json.md @@ -3875,9 +3875,11 @@ External targeting is also possible for action and function overloads that are bound to a certain type of model element. The target path then consists of two path expressions from the table above separated by a forward slash. The first path expression references one of the following model elements: +- Entity Set +- Singleton - Navigation Property via container -- Property via container - Navigation Property via structured type +- Property via container - Property via structured type and the second path expression references one of the following model elements: @@ -3885,12 +3887,13 @@ and the second path expression references one of the following model elements: - Function overload where the Action or Function overload is bound with binding parameter type -equal to the type of the first path expression, or the second path expression -references +equal to or derived from the type of the first path expression, or the second +path expression references - all overloads of an Action or - all overloads of a Function -where the binding parameter is an instance or a collection of the given type. +where the binding parameter is an instance or a collection of the type of the +first path expression or of a type derived from that. These annotations override annotations targeting the action or function overloads directly. diff --git a/docs/odata-csdl-xml/odata-csdl-xml.html b/docs/odata-csdl-xml/odata-csdl-xml.html index 7cdc7378d..b326e11c7 100644 --- a/docs/odata-csdl-xml/odata-csdl-xml.html +++ b/docs/odata-csdl-xml/odata-csdl-xml.html @@ -2207,9 +2207,11 @@

    14.2.2 Target

    External targeting is possible for properties and navigation properties of singletons or entities in a particular entity set. These annotations override annotations on the properties or navigation properties targeted via the declaring structured type.

    External targeting is also possible for action and function overloads that are bound to a certain type of model element. The target path then consists of two path expressions from the table above separated by a forward slash. The first path expression references one of the following model elements:

      +
    • Entity Set
    • +
    • Singleton
    • Navigation Property via container
    • -
    • Property via container
    • Navigation Property via structured type
    • +
    • Property via container
    • Property via structured type

    and the second path expression references one of the following model elements:

    @@ -2217,12 +2219,12 @@

    14.2.2 Target

  • Action overload
  • Function overload
-

where the Action or Function overload is bound with binding parameter type equal to the type of the first path expression, or the second path expression references

+

where the Action or Function overload is bound with binding parameter type equal to or derived from the type of the first path expression, or the second path expression references

  • all overloads of an Action or
  • all overloads of a Function
-

where the binding parameter is an instance or a collection of the given type.

+

where the binding parameter is an instance or a collection of the type of the first path expression or of a type derived from that.

These annotations override annotations targeting the action or function overloads directly.

14.3 Constant Expression

Constant expressions allow assigning a constant value to an applied term.

diff --git a/docs/odata-csdl-xml/odata-csdl-xml.md b/docs/odata-csdl-xml/odata-csdl-xml.md index 14fb6ccb5..05a138bc0 100644 --- a/docs/odata-csdl-xml/odata-csdl-xml.md +++ b/docs/odata-csdl-xml/odata-csdl-xml.md @@ -3688,9 +3688,11 @@ External targeting is also possible for action and function overloads that are bound to a certain type of model element. The target path then consists of two path expressions from the table above separated by a forward slash. The first path expression references one of the following model elements: +- Entity Set +- Singleton - Navigation Property via container -- Property via container - Navigation Property via structured type +- Property via container - Property via structured type and the second path expression references one of the following model elements: @@ -3698,12 +3700,13 @@ and the second path expression references one of the following model elements: - Function overload where the Action or Function overload is bound with binding parameter type -equal to the type of the first path expression, or the second path expression -references +equal to or derived from the type of the first path expression, or the second +path expression references - all overloads of an Action or - all overloads of a Function -where the binding parameter is an instance or a collection of the given type. +where the binding parameter is an instance or a collection of the type of the +first path expression or of a type derived from that. These annotations override annotations targeting the action or function overloads directly. diff --git a/odata-csdl/14 Vocabulary and Annotation.md b/odata-csdl/14 Vocabulary and Annotation.md index 0019c218b..aab45e943 100644 --- a/odata-csdl/14 Vocabulary and Annotation.md +++ b/odata-csdl/14 Vocabulary and Annotation.md @@ -678,9 +678,11 @@ External targeting is also possible for action and function overloads that are bound to a certain type of model element. The target path then consists of two path expressions from the table above separated by a forward slash. The first path expression references one of the following model elements: +- Entity Set +- Singleton - Navigation Property via container -- Property via container - Navigation Property via structured type +- Property via container - Property via structured type and the second path expression references one of the following model elements: @@ -688,12 +690,13 @@ and the second path expression references one of the following model elements: - Function overload where the Action or Function overload is bound with binding parameter type -equal to the type of the first path expression, or the second path expression -references +equal to or derived from the type of the first path expression, or the second +path expression references - all overloads of an Action or - all overloads of a Function -where the binding parameter is an instance or a collection of the given type. +where the binding parameter is an instance or a collection of the type of the +first path expression or of a type derived from that. These annotations override annotations targeting the action or function overloads directly. From 419986c233f6f04be46048e953d6afb0c4ff9c54 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Heiko=20Thei=C3=9Fen?= Date: Mon, 15 Jan 2024 09:41:51 +0100 Subject: [PATCH 07/15] Action/Function via complex or entity type --- docs/odata-csdl-json/odata-csdl-json.html | 52 ++++++++++++++++++---- docs/odata-csdl-json/odata-csdl-json.md | 26 ++++++----- docs/odata-csdl-xml/odata-csdl-xml.html | 52 ++++++++++++++++++---- docs/odata-csdl-xml/odata-csdl-xml.md | 26 ++++++----- odata-csdl/14 Vocabulary and Annotation.md | 26 ++++++----- 5 files changed, 134 insertions(+), 48 deletions(-) diff --git a/docs/odata-csdl-json/odata-csdl-json.html b/docs/odata-csdl-json/odata-csdl-json.html index 71c3fe89a..aaf7638c2 100644 --- a/docs/odata-csdl-json/odata-csdl-json.html +++ b/docs/odata-csdl-json/odata-csdl-json.html @@ -2389,15 +2389,49 @@

14.2.2 Target

All qualified names used in a target path MUST be in scope.

External targeting is possible for properties and navigation properties of singletons or entities in a particular entity set. These annotations override annotations on the properties or navigation properties targeted via the declaring structured type.

-

External targeting is also possible for action and function overloads that are bound to a certain type of model element. The target path then consists of two path expressions from the table above separated by a forward slash. The first path expression references one of the following model elements:

-
    -
  • Entity Set
  • -
  • Singleton
  • -
  • Navigation Property via container
  • -
  • Navigation Property via structured type
  • -
  • Property via container
  • -
  • Property via structured type
  • -
+

External targeting is also possible for action and function overloads whose binding parameter is addressed via a certain path or has a certain type. The target path then consists of two path expressions from the table above separated by a forward slash. The first path expression references one of the following model elements:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Model elementmeans the binding parameter must
Entity Setlie in the entity set
Singletonbe the singleton
Navigation Property via containerbe addressed via the path
Property via containerbe addressed via the path
Navigation Property via structured typebe addressed via this structured type
Property via structured typebe addressed via this structured type
Complex Typehave the type or a subtype thereof
Entity Typehave the type or a subtype thereof

and the second path expression references one of the following model elements:

  • Action overload
  • diff --git a/docs/odata-csdl-json/odata-csdl-json.md b/docs/odata-csdl-json/odata-csdl-json.md index d232329e4..176ab686b 100644 --- a/docs/odata-csdl-json/odata-csdl-json.md +++ b/docs/odata-csdl-json/odata-csdl-json.md @@ -3871,16 +3871,22 @@ properties of singletons or entities in a particular entity set. These annotations override annotations on the properties or navigation properties targeted via the declaring structured type. -External targeting is also possible for action and function overloads that -are bound to a certain type of model element. The target path then consists of -two path expressions from the table above separated by a forward slash. The -first path expression references one of the following model elements: -- Entity Set -- Singleton -- Navigation Property via container -- Navigation Property via structured type -- Property via container -- Property via structured type +External targeting is also possible for action and function overloads whose +binding parameter is addressed via a certain path or has a certain type. The +target path then consists of two path expressions from the table above +separated by a forward slash. The first path expression references one of the +following model elements: + +Model element|means the binding parameter must +-------------|-------------------------------- +Entity Set|lie in the entity set +Singleton|be the singleton +Navigation Property via container|be addressed via the path +Property via container|be addressed via the path +Navigation Property via structured type|be addressed via this structured type +Property via structured type|be addressed via this structured type +Complex Type|have the type or a subtype thereof +Entity Type|have the type or a subtype thereof and the second path expression references one of the following model elements: - Action overload diff --git a/docs/odata-csdl-xml/odata-csdl-xml.html b/docs/odata-csdl-xml/odata-csdl-xml.html index b326e11c7..8d0937336 100644 --- a/docs/odata-csdl-xml/odata-csdl-xml.html +++ b/docs/odata-csdl-xml/odata-csdl-xml.html @@ -2205,15 +2205,49 @@

    14.2.2 Target

    All qualified names used in a target path MUST be in scope.

    External targeting is possible for properties and navigation properties of singletons or entities in a particular entity set. These annotations override annotations on the properties or navigation properties targeted via the declaring structured type.

    -

    External targeting is also possible for action and function overloads that are bound to a certain type of model element. The target path then consists of two path expressions from the table above separated by a forward slash. The first path expression references one of the following model elements:

    -
      -
    • Entity Set
    • -
    • Singleton
    • -
    • Navigation Property via container
    • -
    • Navigation Property via structured type
    • -
    • Property via container
    • -
    • Property via structured type
    • -
    +

    External targeting is also possible for action and function overloads whose binding parameter is addressed via a certain path or has a certain type. The target path then consists of two path expressions from the table above separated by a forward slash. The first path expression references one of the following model elements:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Model elementmeans the binding parameter must
    Entity Setlie in the entity set
    Singletonbe the singleton
    Navigation Property via containerbe addressed via the path
    Property via containerbe addressed via the path
    Navigation Property via structured typebe addressed via this structured type
    Property via structured typebe addressed via this structured type
    Complex Typehave the type or a subtype thereof
    Entity Typehave the type or a subtype thereof

    and the second path expression references one of the following model elements:

    • Action overload
    • diff --git a/docs/odata-csdl-xml/odata-csdl-xml.md b/docs/odata-csdl-xml/odata-csdl-xml.md index 05a138bc0..5f1b45e43 100644 --- a/docs/odata-csdl-xml/odata-csdl-xml.md +++ b/docs/odata-csdl-xml/odata-csdl-xml.md @@ -3684,16 +3684,22 @@ properties of singletons or entities in a particular entity set. These annotations override annotations on the properties or navigation properties targeted via the declaring structured type. -External targeting is also possible for action and function overloads that -are bound to a certain type of model element. The target path then consists of -two path expressions from the table above separated by a forward slash. The -first path expression references one of the following model elements: -- Entity Set -- Singleton -- Navigation Property via container -- Navigation Property via structured type -- Property via container -- Property via structured type +External targeting is also possible for action and function overloads whose +binding parameter is addressed via a certain path or has a certain type. The +target path then consists of two path expressions from the table above +separated by a forward slash. The first path expression references one of the +following model elements: + +Model element|means the binding parameter must +-------------|-------------------------------- +Entity Set|lie in the entity set +Singleton|be the singleton +Navigation Property via container|be addressed via the path +Property via container|be addressed via the path +Navigation Property via structured type|be addressed via this structured type +Property via structured type|be addressed via this structured type +Complex Type|have the type or a subtype thereof +Entity Type|have the type or a subtype thereof and the second path expression references one of the following model elements: - Action overload diff --git a/odata-csdl/14 Vocabulary and Annotation.md b/odata-csdl/14 Vocabulary and Annotation.md index aab45e943..1f9d8feab 100644 --- a/odata-csdl/14 Vocabulary and Annotation.md +++ b/odata-csdl/14 Vocabulary and Annotation.md @@ -674,16 +674,22 @@ properties of singletons or entities in a particular entity set. These annotations override annotations on the properties or navigation properties targeted via the declaring structured type. -External targeting is also possible for action and function overloads that -are bound to a certain type of model element. The target path then consists of -two path expressions from the table above separated by a forward slash. The -first path expression references one of the following model elements: -- Entity Set -- Singleton -- Navigation Property via container -- Navigation Property via structured type -- Property via container -- Property via structured type +External targeting is also possible for action and function overloads whose +binding parameter is addressed via a certain path or has a certain type. The +target path then consists of two path expressions from the table above +separated by a forward slash. The first path expression references one of the +following model elements: + +Model element|means the binding parameter must +-------------|-------------------------------- +Entity Set|lie in the entity set +Singleton|be the singleton +Navigation Property via container|be addressed via the path +Property via container|be addressed via the path +Navigation Property via structured type|be addressed via this structured type +Property via structured type|be addressed via this structured type +Complex Type|have the type or a subtype thereof +Entity Type|have the type or a subtype thereof and the second path expression references one of the following model elements: - Action overload From 584f5fd07ed80288fefea9d09b8a51efd7cb4e17 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Heiko=20Thei=C3=9Fen?= Date: Mon, 15 Jan 2024 09:58:27 +0100 Subject: [PATCH 08/15] Rephrased --- docs/odata-csdl-json/odata-csdl-json.html | 25 ++++++++---------- docs/odata-csdl-json/odata-csdl-json.md | 30 ++++++++++------------ docs/odata-csdl-xml/odata-csdl-xml.html | 25 ++++++++---------- docs/odata-csdl-xml/odata-csdl-xml.md | 30 ++++++++++------------ odata-csdl/14 Vocabulary and Annotation.md | 30 ++++++++++------------ 5 files changed, 61 insertions(+), 79 deletions(-) diff --git a/docs/odata-csdl-json/odata-csdl-json.html b/docs/odata-csdl-json/odata-csdl-json.html index aaf7638c2..d90247acf 100644 --- a/docs/odata-csdl-json/odata-csdl-json.html +++ b/docs/odata-csdl-json/odata-csdl-json.html @@ -2394,55 +2394,52 @@

      14.2.2 Target

      Model element -means the binding parameter must +means the binding parameter must be Entity Set -lie in the entity set +an instance or collection of instances from the entity set Singleton -be the singleton +the singleton Navigation Property via container -be addressed via the path +addressed via the path Property via container -be addressed via the path +addressed via the path Navigation Property via structured type -be addressed via this structured type +addressed via this structured type Property via structured type -be addressed via this structured type +addressed via this structured type Complex Type -have the type or a subtype thereof +an instance or collection of the type or a subtype thereof Entity Type -have the type or a subtype thereof +an instance or collection of the type or a subtype thereof

      and the second path expression references one of the following model elements:

      • Action overload
      • +
      • all overloads of an Action
      • Function overload
      • -
      -

      where the Action or Function overload is bound with binding parameter type equal to or derived from the type of the first path expression, or the second path expression references

      -
        -
      • all overloads of an Action or
      • all overloads of a Function
      -

      where the binding parameter is an instance or a collection of the type of the first path expression or of a type derived from that.

      +

      where the overload is bound and the binding parameter meets the condition imposed by the first path expression.

      These annotations override annotations targeting the action or function overloads directly.

      14.3 Constant Expression

      Constant expressions allow assigning a constant value to an applied term.

      diff --git a/docs/odata-csdl-json/odata-csdl-json.md b/docs/odata-csdl-json/odata-csdl-json.md index 176ab686b..23f84ac76 100644 --- a/docs/odata-csdl-json/odata-csdl-json.md +++ b/docs/odata-csdl-json/odata-csdl-json.md @@ -3877,29 +3877,25 @@ target path then consists of two path expressions from the table above separated by a forward slash. The first path expression references one of the following model elements: -Model element|means the binding parameter must --------------|-------------------------------- -Entity Set|lie in the entity set -Singleton|be the singleton -Navigation Property via container|be addressed via the path -Property via container|be addressed via the path -Navigation Property via structured type|be addressed via this structured type -Property via structured type|be addressed via this structured type -Complex Type|have the type or a subtype thereof -Entity Type|have the type or a subtype thereof +Model element|means the binding parameter must be +-------------|----------------------------------- +Entity Set|an instance or collection of instances from the entity set +Singleton|the singleton +Navigation Property via container|addressed via the path +Property via container|addressed via the path +Navigation Property via structured type|addressed via this structured type +Property via structured type|addressed via this structured type +Complex Type|an instance or collection of the type or a subtype thereof +Entity Type|an instance or collection of the type or a subtype thereof and the second path expression references one of the following model elements: - Action overload +- all overloads of an Action - Function overload - -where the Action or Function overload is bound with binding parameter type -equal to or derived from the type of the first path expression, or the second -path expression references -- all overloads of an Action or - all overloads of a Function -where the binding parameter is an instance or a collection of the type of the -first path expression or of a type derived from that. +where the overload is bound and the binding parameter meets the condition +imposed by the first path expression. These annotations override annotations targeting the action or function overloads directly. diff --git a/docs/odata-csdl-xml/odata-csdl-xml.html b/docs/odata-csdl-xml/odata-csdl-xml.html index 8d0937336..fc2a590a6 100644 --- a/docs/odata-csdl-xml/odata-csdl-xml.html +++ b/docs/odata-csdl-xml/odata-csdl-xml.html @@ -2210,55 +2210,52 @@

      14.2.2 Target

      Model element -means the binding parameter must +means the binding parameter must be Entity Set -lie in the entity set +an instance or collection of instances from the entity set Singleton -be the singleton +the singleton Navigation Property via container -be addressed via the path +addressed via the path Property via container -be addressed via the path +addressed via the path Navigation Property via structured type -be addressed via this structured type +addressed via this structured type Property via structured type -be addressed via this structured type +addressed via this structured type Complex Type -have the type or a subtype thereof +an instance or collection of the type or a subtype thereof Entity Type -have the type or a subtype thereof +an instance or collection of the type or a subtype thereof

      and the second path expression references one of the following model elements:

      • Action overload
      • +
      • all overloads of an Action
      • Function overload
      • -
      -

      where the Action or Function overload is bound with binding parameter type equal to or derived from the type of the first path expression, or the second path expression references

      -
        -
      • all overloads of an Action or
      • all overloads of a Function
      -

      where the binding parameter is an instance or a collection of the type of the first path expression or of a type derived from that.

      +

      where the overload is bound and the binding parameter meets the condition imposed by the first path expression.

      These annotations override annotations targeting the action or function overloads directly.

      14.3 Constant Expression

      Constant expressions allow assigning a constant value to an applied term.

      diff --git a/docs/odata-csdl-xml/odata-csdl-xml.md b/docs/odata-csdl-xml/odata-csdl-xml.md index 5f1b45e43..a4e72db43 100644 --- a/docs/odata-csdl-xml/odata-csdl-xml.md +++ b/docs/odata-csdl-xml/odata-csdl-xml.md @@ -3690,29 +3690,25 @@ target path then consists of two path expressions from the table above separated by a forward slash. The first path expression references one of the following model elements: -Model element|means the binding parameter must --------------|-------------------------------- -Entity Set|lie in the entity set -Singleton|be the singleton -Navigation Property via container|be addressed via the path -Property via container|be addressed via the path -Navigation Property via structured type|be addressed via this structured type -Property via structured type|be addressed via this structured type -Complex Type|have the type or a subtype thereof -Entity Type|have the type or a subtype thereof +Model element|means the binding parameter must be +-------------|----------------------------------- +Entity Set|an instance or collection of instances from the entity set +Singleton|the singleton +Navigation Property via container|addressed via the path +Property via container|addressed via the path +Navigation Property via structured type|addressed via this structured type +Property via structured type|addressed via this structured type +Complex Type|an instance or collection of the type or a subtype thereof +Entity Type|an instance or collection of the type or a subtype thereof and the second path expression references one of the following model elements: - Action overload +- all overloads of an Action - Function overload - -where the Action or Function overload is bound with binding parameter type -equal to or derived from the type of the first path expression, or the second -path expression references -- all overloads of an Action or - all overloads of a Function -where the binding parameter is an instance or a collection of the type of the -first path expression or of a type derived from that. +where the overload is bound and the binding parameter meets the condition +imposed by the first path expression. These annotations override annotations targeting the action or function overloads directly. diff --git a/odata-csdl/14 Vocabulary and Annotation.md b/odata-csdl/14 Vocabulary and Annotation.md index 1f9d8feab..657903efe 100644 --- a/odata-csdl/14 Vocabulary and Annotation.md +++ b/odata-csdl/14 Vocabulary and Annotation.md @@ -680,29 +680,25 @@ target path then consists of two path expressions from the table above separated by a forward slash. The first path expression references one of the following model elements: -Model element|means the binding parameter must --------------|-------------------------------- -Entity Set|lie in the entity set -Singleton|be the singleton -Navigation Property via container|be addressed via the path -Property via container|be addressed via the path -Navigation Property via structured type|be addressed via this structured type -Property via structured type|be addressed via this structured type -Complex Type|have the type or a subtype thereof -Entity Type|have the type or a subtype thereof +Model element|means the binding parameter must be +-------------|----------------------------------- +Entity Set|an instance or collection of instances from the entity set +Singleton|the singleton +Navigation Property via container|addressed via the path +Property via container|addressed via the path +Navigation Property via structured type|addressed via this structured type +Property via structured type|addressed via this structured type +Complex Type|an instance or collection of the type or a subtype thereof +Entity Type|an instance or collection of the type or a subtype thereof and the second path expression references one of the following model elements: - Action overload +- all overloads of an Action - Function overload - -where the Action or Function overload is bound with binding parameter type -equal to or derived from the type of the first path expression, or the second -path expression references -- all overloads of an Action or - all overloads of a Function -where the binding parameter is an instance or a collection of the type of the -first path expression or of a type derived from that. +where the overload is bound and the binding parameter meets the condition +imposed by the first path expression. These annotations override annotations targeting the action or function overloads directly. From 8ab0389ffeb6ec3787d00407233ebf261f80120e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Heiko=20Thei=C3=9Fen?= Date: Mon, 15 Jan 2024 11:00:55 +0100 Subject: [PATCH 09/15] Rephrased again --- docs/odata-csdl-json/odata-csdl-json.html | 2 +- docs/odata-csdl-json/odata-csdl-json.md | 2 +- docs/odata-csdl-xml/odata-csdl-xml.html | 2 +- docs/odata-csdl-xml/odata-csdl-xml.md | 2 +- odata-csdl/14 Vocabulary and Annotation.md | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/odata-csdl-json/odata-csdl-json.html b/docs/odata-csdl-json/odata-csdl-json.html index d90247acf..32cf0fb1c 100644 --- a/docs/odata-csdl-json/odata-csdl-json.html +++ b/docs/odata-csdl-json/odata-csdl-json.html @@ -2389,7 +2389,7 @@

      14.2.2 Target

      All qualified names used in a target path MUST be in scope.

      External targeting is possible for properties and navigation properties of singletons or entities in a particular entity set. These annotations override annotations on the properties or navigation properties targeted via the declaring structured type.

      -

      External targeting is also possible for action and function overloads whose binding parameter is addressed via a certain path or has a certain type. The target path then consists of two path expressions from the table above separated by a forward slash. The first path expression references one of the following model elements:

      +

      External targeting is also possible for bound action and function overloads whose binding parameter is addressed via a certain path or has a certain type. The target path then consists of two path expressions from the table above separated by a forward slash. The first path expression references one of the following model elements:

      diff --git a/docs/odata-csdl-json/odata-csdl-json.md b/docs/odata-csdl-json/odata-csdl-json.md index 23f84ac76..540bc4cad 100644 --- a/docs/odata-csdl-json/odata-csdl-json.md +++ b/docs/odata-csdl-json/odata-csdl-json.md @@ -3871,7 +3871,7 @@ properties of singletons or entities in a particular entity set. These annotations override annotations on the properties or navigation properties targeted via the declaring structured type. -External targeting is also possible for action and function overloads whose +External targeting is also possible for bound action and function overloads whose binding parameter is addressed via a certain path or has a certain type. The target path then consists of two path expressions from the table above separated by a forward slash. The first path expression references one of the diff --git a/docs/odata-csdl-xml/odata-csdl-xml.html b/docs/odata-csdl-xml/odata-csdl-xml.html index fc2a590a6..445e1dd31 100644 --- a/docs/odata-csdl-xml/odata-csdl-xml.html +++ b/docs/odata-csdl-xml/odata-csdl-xml.html @@ -2205,7 +2205,7 @@

      14.2.2 Target

      All qualified names used in a target path MUST be in scope.

      External targeting is possible for properties and navigation properties of singletons or entities in a particular entity set. These annotations override annotations on the properties or navigation properties targeted via the declaring structured type.

      -

      External targeting is also possible for action and function overloads whose binding parameter is addressed via a certain path or has a certain type. The target path then consists of two path expressions from the table above separated by a forward slash. The first path expression references one of the following model elements:

      +

      External targeting is also possible for bound action and function overloads whose binding parameter is addressed via a certain path or has a certain type. The target path then consists of two path expressions from the table above separated by a forward slash. The first path expression references one of the following model elements:

      diff --git a/docs/odata-csdl-xml/odata-csdl-xml.md b/docs/odata-csdl-xml/odata-csdl-xml.md index a4e72db43..12a0af711 100644 --- a/docs/odata-csdl-xml/odata-csdl-xml.md +++ b/docs/odata-csdl-xml/odata-csdl-xml.md @@ -3684,7 +3684,7 @@ properties of singletons or entities in a particular entity set. These annotations override annotations on the properties or navigation properties targeted via the declaring structured type. -External targeting is also possible for action and function overloads whose +External targeting is also possible for bound action and function overloads whose binding parameter is addressed via a certain path or has a certain type. The target path then consists of two path expressions from the table above separated by a forward slash. The first path expression references one of the diff --git a/odata-csdl/14 Vocabulary and Annotation.md b/odata-csdl/14 Vocabulary and Annotation.md index 657903efe..9055e3f48 100644 --- a/odata-csdl/14 Vocabulary and Annotation.md +++ b/odata-csdl/14 Vocabulary and Annotation.md @@ -674,7 +674,7 @@ properties of singletons or entities in a particular entity set. These annotations override annotations on the properties or navigation properties targeted via the declaring structured type. -External targeting is also possible for action and function overloads whose +External targeting is also possible for bound action and function overloads whose binding parameter is addressed via a certain path or has a certain type. The target path then consists of two path expressions from the table above separated by a forward slash. The first path expression references one of the From 728c907c1b0750e1294375d4fd04e9d1f0cd9372 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Heiko=20Thei=C3=9Fen?= Date: Mon, 15 Jan 2024 11:09:34 +0100 Subject: [PATCH 10/15] Fine-tuning --- docs/odata-csdl-json/odata-csdl-json.html | 9 +++++++-- docs/odata-csdl-json/odata-csdl-json.md | 5 +++-- docs/odata-csdl-xml/odata-csdl-xml.html | 9 +++++++-- docs/odata-csdl-xml/odata-csdl-xml.md | 5 +++-- odata-csdl/1 Introduction.md | 3 +++ odata-csdl/14 Vocabulary and Annotation.md | 4 ++-- 6 files changed, 25 insertions(+), 10 deletions(-) diff --git a/docs/odata-csdl-json/odata-csdl-json.html b/docs/odata-csdl-json/odata-csdl-json.html index 32cf0fb1c..8a053dab4 100644 --- a/docs/odata-csdl-json/odata-csdl-json.html +++ b/docs/odata-csdl-json/odata-csdl-json.html @@ -380,6 +380,11 @@

      + + + + + @@ -2416,11 +2421,11 @@

      14.2.2 Target

      - + - + diff --git a/docs/odata-csdl-json/odata-csdl-json.md b/docs/odata-csdl-json/odata-csdl-json.md index 540bc4cad..b5e4e64c2 100644 --- a/docs/odata-csdl-json/odata-csdl-json.md +++ b/docs/odata-csdl-json/odata-csdl-json.md @@ -259,6 +259,7 @@ modifications made necessary to fully cover OData CSDL Version 4.01. Section | Feature / Change | Issue --------|------------------|------ +[Section 14.2.2](#Target)| External targeting of bound action/function overloads via container or structured type| [ODATA-1626](https://issues.oasis-open.org/browse/ODATA-1626) [Section 14.4.1.2](#PathEvaluation)| New path evaluation rules for annotations targeting annotations and external targeting via container| [ODATA-1420](https://issues.oasis-open.org/browse/ODATA-1420) ## 1.2 Glossary @@ -3883,8 +3884,8 @@ Entity Set|an instance or collection of instances from the entity set Singleton|the singleton Navigation Property via container|addressed via the path Property via container|addressed via the path -Navigation Property via structured type|addressed via this structured type -Property via structured type|addressed via this structured type +Navigation Property via structured type|addressed via the structured type +Property via structured type|addressed via the structured type Complex Type|an instance or collection of the type or a subtype thereof Entity Type|an instance or collection of the type or a subtype thereof diff --git a/docs/odata-csdl-xml/odata-csdl-xml.html b/docs/odata-csdl-xml/odata-csdl-xml.html index 445e1dd31..9e0e6969c 100644 --- a/docs/odata-csdl-xml/odata-csdl-xml.html +++ b/docs/odata-csdl-xml/odata-csdl-xml.html @@ -380,6 +380,11 @@

      ODATA-1571

      + + + + + @@ -2232,11 +2237,11 @@

      14.2.2 Target

      - + - + diff --git a/docs/odata-csdl-xml/odata-csdl-xml.md b/docs/odata-csdl-xml/odata-csdl-xml.md index 12a0af711..9cf765b49 100644 --- a/docs/odata-csdl-xml/odata-csdl-xml.md +++ b/docs/odata-csdl-xml/odata-csdl-xml.md @@ -258,6 +258,7 @@ Schema Definition Language (XSD) 1.1 as described in Section | Feature / Change | Issue --------|------------------|------ [Section 13](#EntityContainer)| All children of `edm:EntityContainer` are optional| [ODATA-1571](https://issues.oasis-open.org/browse/ODATA-1571) +[Section 14.2.2](#Target)| External targeting of bound action/function overloads via container or structured type| [ODATA-1626](https://issues.oasis-open.org/browse/ODATA-1626) [Section 14.4.1.2](#PathEvaluation)| New path evaluation rules for annotations targeting annotations and external targeting via container| [ODATA-1420](https://issues.oasis-open.org/browse/ODATA-1420) ## 1.2 Glossary @@ -3696,8 +3697,8 @@ Entity Set|an instance or collection of instances from the entity set Singleton|the singleton Navigation Property via container|addressed via the path Property via container|addressed via the path -Navigation Property via structured type|addressed via this structured type -Property via structured type|addressed via this structured type +Navigation Property via structured type|addressed via the structured type +Property via structured type|addressed via the structured type Complex Type|an instance or collection of the type or a subtype thereof Entity Type|an instance or collection of the type or a subtype thereof diff --git a/odata-csdl/1 Introduction.md b/odata-csdl/1 Introduction.md index cb439d792..196b6a36d 100644 --- a/odata-csdl/1 Introduction.md +++ b/odata-csdl/1 Introduction.md @@ -34,6 +34,9 @@ Section | Feature / Change | Issue All children of `edm:EntityContainer` are optional| [ODATA-1571](https://issues.oasis-open.org/browse/ODATA-1571) : +[Section ##Target]| +External targeting of bound action/function overloads via container or structured type| +[ODATA-1626](https://issues.oasis-open.org/browse/ODATA-1626) [Section ##PathEvaluation]| New path evaluation rules for annotations targeting annotations and external targeting via container| [ODATA-1420](https://issues.oasis-open.org/browse/ODATA-1420) diff --git a/odata-csdl/14 Vocabulary and Annotation.md b/odata-csdl/14 Vocabulary and Annotation.md index 9055e3f48..ee8639e64 100644 --- a/odata-csdl/14 Vocabulary and Annotation.md +++ b/odata-csdl/14 Vocabulary and Annotation.md @@ -686,8 +686,8 @@ Entity Set|an instance or collection of instances from the entity set Singleton|the singleton Navigation Property via container|addressed via the path Property via container|addressed via the path -Navigation Property via structured type|addressed via this structured type -Property via structured type|addressed via this structured type +Navigation Property via structured type|addressed via the structured type +Property via structured type|addressed via the structured type Complex Type|an instance or collection of the type or a subtype thereof Entity Type|an instance or collection of the type or a subtype thereof From ffb10794801ce746a10c17af02b511bc96a02af3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Heiko=20Thei=C3=9Fen?= Date: Mon, 15 Jan 2024 15:59:57 +0100 Subject: [PATCH 11/15] Parameters and return types --- docs/odata-csdl-json/odata-csdl-json.html | 4 +++- docs/odata-csdl-json/odata-csdl-json.md | 13 ++++++++----- docs/odata-csdl-xml/odata-csdl-xml.html | 4 +++- docs/odata-csdl-xml/odata-csdl-xml.md | 13 ++++++++----- odata-csdl/14 Vocabulary and Annotation.md | 13 ++++++++----- 5 files changed, 30 insertions(+), 17 deletions(-) diff --git a/docs/odata-csdl-json/odata-csdl-json.html b/docs/odata-csdl-json/odata-csdl-json.html index 8a053dab4..7e74ca06f 100644 --- a/docs/odata-csdl-json/odata-csdl-json.html +++ b/docs/odata-csdl-json/odata-csdl-json.html @@ -2394,7 +2394,7 @@

      14.2.2 Target

      Section 14.2.2External targeting of bound action/function overloads via container or structured typeODATA-1626
      Section 14.4.1.2 New path evaluation rules for annotations targeting annotations and external targeting via container ODATA-1420
      Navigation Property via structured typeaddressed via this structured typeaddressed via the structured type
      Property via structured typeaddressed via this structured typeaddressed via the structured type
      Complex Type
      Section 14.2.2External targeting of bound action/function overloads via container or structured typeODATA-1626
      Section 14.4.1.2 New path evaluation rules for annotations targeting annotations and external targeting via container ODATA-1420
      Navigation Property via structured typeaddressed via this structured typeaddressed via the structured type
      Property via structured typeaddressed via this structured typeaddressed via the structured type
      Complex Type

      All qualified names used in a target path MUST be in scope.

      External targeting is possible for properties and navigation properties of singletons or entities in a particular entity set. These annotations override annotations on the properties or navigation properties targeted via the declaring structured type.

      -

      External targeting is also possible for bound action and function overloads whose binding parameter is addressed via a certain path or has a certain type. The target path then consists of two path expressions from the table above separated by a forward slash. The first path expression references one of the following model elements:

      +

      External targeting is also possible for bound action and function overloads whose binding parameter is addressed via a certain path or has a certain type, as well as for parameters and return types thereof. The target path then consists of two path expressions from the table above separated by a forward slash. The first path expression references one of the following model elements:

      @@ -2443,6 +2443,8 @@

      14.2.2 Target

    • all overloads of an Action
    • Function overload
    • all overloads of a Function
    • +
    • Parameter
    • +
    • Return Type
    • where the overload is bound and the binding parameter meets the condition imposed by the first path expression.

      These annotations override annotations targeting the action or function overloads directly.

      diff --git a/docs/odata-csdl-json/odata-csdl-json.md b/docs/odata-csdl-json/odata-csdl-json.md index b5e4e64c2..4fc9ccce2 100644 --- a/docs/odata-csdl-json/odata-csdl-json.md +++ b/docs/odata-csdl-json/odata-csdl-json.md @@ -3872,11 +3872,12 @@ properties of singletons or entities in a particular entity set. These annotations override annotations on the properties or navigation properties targeted via the declaring structured type. -External targeting is also possible for bound action and function overloads whose -binding parameter is addressed via a certain path or has a certain type. The -target path then consists of two path expressions from the table above -separated by a forward slash. The first path expression references one of the -following model elements: +External targeting is also possible for bound action and function overloads +whose binding parameter is addressed via a certain path or has a certain type, +as well as for parameters and return types thereof. The target path then +consists of two path expressions from the table above separated by a forward +slash. The first path expression references one of the following model +elements: Model element|means the binding parameter must be -------------|----------------------------------- @@ -3894,6 +3895,8 @@ and the second path expression references one of the following model elements: - all overloads of an Action - Function overload - all overloads of a Function +- Parameter +- Return Type where the overload is bound and the binding parameter meets the condition imposed by the first path expression. diff --git a/docs/odata-csdl-xml/odata-csdl-xml.html b/docs/odata-csdl-xml/odata-csdl-xml.html index 9e0e6969c..a85b33a4d 100644 --- a/docs/odata-csdl-xml/odata-csdl-xml.html +++ b/docs/odata-csdl-xml/odata-csdl-xml.html @@ -2210,7 +2210,7 @@

      14.2.2 Target

      All qualified names used in a target path MUST be in scope.

      External targeting is possible for properties and navigation properties of singletons or entities in a particular entity set. These annotations override annotations on the properties or navigation properties targeted via the declaring structured type.

      -

      External targeting is also possible for bound action and function overloads whose binding parameter is addressed via a certain path or has a certain type. The target path then consists of two path expressions from the table above separated by a forward slash. The first path expression references one of the following model elements:

      +

      External targeting is also possible for bound action and function overloads whose binding parameter is addressed via a certain path or has a certain type, as well as for parameters and return types thereof. The target path then consists of two path expressions from the table above separated by a forward slash. The first path expression references one of the following model elements:

      @@ -2259,6 +2259,8 @@

      14.2.2 Target

    • all overloads of an Action
    • Function overload
    • all overloads of a Function
    • +
    • Parameter
    • +
    • Return Type
    • where the overload is bound and the binding parameter meets the condition imposed by the first path expression.

      These annotations override annotations targeting the action or function overloads directly.

      diff --git a/docs/odata-csdl-xml/odata-csdl-xml.md b/docs/odata-csdl-xml/odata-csdl-xml.md index 9cf765b49..1ce05a5ed 100644 --- a/docs/odata-csdl-xml/odata-csdl-xml.md +++ b/docs/odata-csdl-xml/odata-csdl-xml.md @@ -3685,11 +3685,12 @@ properties of singletons or entities in a particular entity set. These annotations override annotations on the properties or navigation properties targeted via the declaring structured type. -External targeting is also possible for bound action and function overloads whose -binding parameter is addressed via a certain path or has a certain type. The -target path then consists of two path expressions from the table above -separated by a forward slash. The first path expression references one of the -following model elements: +External targeting is also possible for bound action and function overloads +whose binding parameter is addressed via a certain path or has a certain type, +as well as for parameters and return types thereof. The target path then +consists of two path expressions from the table above separated by a forward +slash. The first path expression references one of the following model +elements: Model element|means the binding parameter must be -------------|----------------------------------- @@ -3707,6 +3708,8 @@ and the second path expression references one of the following model elements: - all overloads of an Action - Function overload - all overloads of a Function +- Parameter +- Return Type where the overload is bound and the binding parameter meets the condition imposed by the first path expression. diff --git a/odata-csdl/14 Vocabulary and Annotation.md b/odata-csdl/14 Vocabulary and Annotation.md index ee8639e64..36c5ea0a6 100644 --- a/odata-csdl/14 Vocabulary and Annotation.md +++ b/odata-csdl/14 Vocabulary and Annotation.md @@ -674,11 +674,12 @@ properties of singletons or entities in a particular entity set. These annotations override annotations on the properties or navigation properties targeted via the declaring structured type. -External targeting is also possible for bound action and function overloads whose -binding parameter is addressed via a certain path or has a certain type. The -target path then consists of two path expressions from the table above -separated by a forward slash. The first path expression references one of the -following model elements: +External targeting is also possible for bound action and function overloads +whose binding parameter is addressed via a certain path or has a certain type, +as well as for parameters and return types thereof. The target path then +consists of two path expressions from the table above separated by a forward +slash. The first path expression references one of the following model +elements: Model element|means the binding parameter must be -------------|----------------------------------- @@ -696,6 +697,8 @@ and the second path expression references one of the following model elements: - all overloads of an Action - Function overload - all overloads of a Function +- Parameter +- Return Type where the overload is bound and the binding parameter meets the condition imposed by the first path expression. From d522e997432eb29e53a6fec8304d396d237b34e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Heiko=20Thei=C3=9Fen?= Date: Thu, 18 Jan 2024 12:40:34 +0100 Subject: [PATCH 12/15] Explain "addressed via resource path" --- docs/odata-csdl-json/odata-csdl-json.html | 15 ++++++++------- docs/odata-csdl-json/odata-csdl-json.md | 18 ++++++++++++------ docs/odata-csdl-xml/odata-csdl-xml.html | 15 ++++++++------- docs/odata-csdl-xml/odata-csdl-xml.md | 18 ++++++++++++------ odata-csdl/14 Vocabulary and Annotation.md | 18 ++++++++++++------ 5 files changed, 52 insertions(+), 32 deletions(-) diff --git a/docs/odata-csdl-json/odata-csdl-json.html b/docs/odata-csdl-json/odata-csdl-json.html index 5a4e7c4b4..a6b8a637c 100644 --- a/docs/odata-csdl-json/odata-csdl-json.html +++ b/docs/odata-csdl-json/odata-csdl-json.html @@ -389,7 +389,7 @@

      New path evaluation rules for annotations targeting annotations and external targeting via container

      - + @@ -2399,7 +2399,7 @@

      14.2.2 Target

      ODATA-1420
      Section 3.3 Allow stream-valued non-binding parameters ODATA-1481

      All qualified names used in a target path MUST be in scope.

      External targeting is possible for properties and navigation properties of singletons or entities in a particular entity set. These annotations override annotations on the properties or navigation properties targeted via the declaring structured type.

      -

      External targeting is also possible for bound action and function overloads whose binding parameter is addressed via a certain path or has a certain type, as well as for parameters and return types thereof. The target path then consists of two path expressions from the table above separated by a forward slash. The first path expression references one of the following model elements:

      +

      External targeting is also possible for bound action and function overloads whose binding parameter is addressed via a certain path or has a certain type, as well as for parameters and return types thereof. The targeting expression then consists of two path expressions from the table above separated by a forward slash. The first path expression references one of the following model elements:

      @@ -2418,19 +2418,19 @@

      14.2.2 Target

      - + - + - + - + @@ -2442,7 +2442,8 @@

      14.2.2 Target

      Navigation Property via containeraddressed via the pathaddressed via the resource path to the navigation property
      Property via containeraddressed via the pathaddressed via the resource path to the property
      Navigation Property via structured typeaddressed via the structured typeaddressed by a path that traverses the structured type
      Property via structured typeaddressed via the structured typeaddressed by a path that traverses the structured type
      Complex Type
      -

      and the second path expression references one of the following model elements:

      +

      A binding parameter is “addressed via a resource path” if the path expression addressing the binding parameter starts with the resource path, it may then continue with segments described in OData-URL, sections 4.6 through 4.12. If the given path addresses a collection, the binding parameter can also be a single instance of that collection (see OData-URL, sections 4.9 and 4.10).

      +

      The second path expression references one of the following model elements:

      • Action overload
      • all overloads of an Action
      • diff --git a/docs/odata-csdl-json/odata-csdl-json.md b/docs/odata-csdl-json/odata-csdl-json.md index e3084529d..21b597e32 100644 --- a/docs/odata-csdl-json/odata-csdl-json.md +++ b/docs/odata-csdl-json/odata-csdl-json.md @@ -3875,7 +3875,7 @@ properties targeted via the declaring structured type. External targeting is also possible for bound action and function overloads whose binding parameter is addressed via a certain path or has a certain type, -as well as for parameters and return types thereof. The target path then +as well as for parameters and return types thereof. The targeting expression then consists of two path expressions from the table above separated by a forward slash. The first path expression references one of the following model elements: @@ -3884,14 +3884,20 @@ Model element|means the binding parameter must be -------------|----------------------------------- Entity Set|an instance or collection of instances from the entity set Singleton|the singleton -Navigation Property via container|addressed via the path -Property via container|addressed via the path -Navigation Property via structured type|addressed via the structured type -Property via structured type|addressed via the structured type +Navigation Property via container|addressed via the resource path to the navigation property +Property via container|addressed via the resource path to the property +Navigation Property via structured type|addressed by a path that traverses the structured type +Property via structured type|addressed by a path that traverses the structured type Complex Type|an instance or collection of the type or a subtype thereof Entity Type|an instance or collection of the type or a subtype thereof -and the second path expression references one of the following model elements: +A binding parameter is "addressed via a resource path" if the path expression addressing the +binding parameter starts with the resource path, it may then continue with segments +described in [OData-URL](#ODataURL), sections 4.6 through 4.12. If the given path +addresses a collection, the binding parameter can also be a single instance of that +collection (see [OData-URL](#ODataURL), sections 4.9 and 4.10). + +The second path expression references one of the following model elements: - Action overload - all overloads of an Action - Function overload diff --git a/docs/odata-csdl-xml/odata-csdl-xml.html b/docs/odata-csdl-xml/odata-csdl-xml.html index 1892fc6ff..88922c5ab 100644 --- a/docs/odata-csdl-xml/odata-csdl-xml.html +++ b/docs/odata-csdl-xml/odata-csdl-xml.html @@ -389,7 +389,7 @@

        New path evaluation rules for annotations targeting annotations and external targeting via container ODATA-1420 - + Section 3.3 Allow stream-valued non-binding parameters ODATA-1481 @@ -2215,7 +2215,7 @@

        14.2.2 Target

        All qualified names used in a target path MUST be in scope.

        External targeting is possible for properties and navigation properties of singletons or entities in a particular entity set. These annotations override annotations on the properties or navigation properties targeted via the declaring structured type.

        -

        External targeting is also possible for bound action and function overloads whose binding parameter is addressed via a certain path or has a certain type, as well as for parameters and return types thereof. The target path then consists of two path expressions from the table above separated by a forward slash. The first path expression references one of the following model elements:

        +

        External targeting is also possible for bound action and function overloads whose binding parameter is addressed via a certain path or has a certain type, as well as for parameters and return types thereof. The targeting expression then consists of two path expressions from the table above separated by a forward slash. The first path expression references one of the following model elements:

        @@ -2234,19 +2234,19 @@

        14.2.2 Target

        - + - + - + - + @@ -2258,7 +2258,8 @@

        14.2.2 Target

        Navigation Property via containeraddressed via the pathaddressed via the resource path to the navigation property
        Property via containeraddressed via the pathaddressed via the resource path to the property
        Navigation Property via structured typeaddressed via the structured typeaddressed by a path that traverses the structured type
        Property via structured typeaddressed via the structured typeaddressed by a path that traverses the structured type
        Complex Type
        -

        and the second path expression references one of the following model elements:

        +

        A binding parameter is “addressed via a resource path” if the path expression addressing the binding parameter starts with the resource path, it may then continue with segments described in OData-URL, sections 4.6 through 4.12. If the given path addresses a collection, the binding parameter can also be a single instance of that collection (see OData-URL, sections 4.9 and 4.10).

        +

        The second path expression references one of the following model elements:

        • Action overload
        • all overloads of an Action
        • diff --git a/docs/odata-csdl-xml/odata-csdl-xml.md b/docs/odata-csdl-xml/odata-csdl-xml.md index 037609da0..81f488d79 100644 --- a/docs/odata-csdl-xml/odata-csdl-xml.md +++ b/docs/odata-csdl-xml/odata-csdl-xml.md @@ -3688,7 +3688,7 @@ properties targeted via the declaring structured type. External targeting is also possible for bound action and function overloads whose binding parameter is addressed via a certain path or has a certain type, -as well as for parameters and return types thereof. The target path then +as well as for parameters and return types thereof. The targeting expression then consists of two path expressions from the table above separated by a forward slash. The first path expression references one of the following model elements: @@ -3697,14 +3697,20 @@ Model element|means the binding parameter must be -------------|----------------------------------- Entity Set|an instance or collection of instances from the entity set Singleton|the singleton -Navigation Property via container|addressed via the path -Property via container|addressed via the path -Navigation Property via structured type|addressed via the structured type -Property via structured type|addressed via the structured type +Navigation Property via container|addressed via the resource path to the navigation property +Property via container|addressed via the resource path to the property +Navigation Property via structured type|addressed by a path that traverses the structured type +Property via structured type|addressed by a path that traverses the structured type Complex Type|an instance or collection of the type or a subtype thereof Entity Type|an instance or collection of the type or a subtype thereof -and the second path expression references one of the following model elements: +A binding parameter is "addressed via a resource path" if the path expression addressing the +binding parameter starts with the resource path, it may then continue with segments +described in [OData-URL](#ODataURL), sections 4.6 through 4.12. If the given path +addresses a collection, the binding parameter can also be a single instance of that +collection (see [OData-URL](#ODataURL), sections 4.9 and 4.10). + +The second path expression references one of the following model elements: - Action overload - all overloads of an Action - Function overload diff --git a/odata-csdl/14 Vocabulary and Annotation.md b/odata-csdl/14 Vocabulary and Annotation.md index 36c5ea0a6..07a20dea2 100644 --- a/odata-csdl/14 Vocabulary and Annotation.md +++ b/odata-csdl/14 Vocabulary and Annotation.md @@ -676,7 +676,7 @@ properties targeted via the declaring structured type. External targeting is also possible for bound action and function overloads whose binding parameter is addressed via a certain path or has a certain type, -as well as for parameters and return types thereof. The target path then +as well as for parameters and return types thereof. The targeting expression then consists of two path expressions from the table above separated by a forward slash. The first path expression references one of the following model elements: @@ -685,14 +685,20 @@ Model element|means the binding parameter must be -------------|----------------------------------- Entity Set|an instance or collection of instances from the entity set Singleton|the singleton -Navigation Property via container|addressed via the path -Property via container|addressed via the path -Navigation Property via structured type|addressed via the structured type -Property via structured type|addressed via the structured type +Navigation Property via container|addressed via the resource path to the navigation property +Property via container|addressed via the resource path to the property +Navigation Property via structured type|addressed by a path that traverses the structured type +Property via structured type|addressed by a path that traverses the structured type Complex Type|an instance or collection of the type or a subtype thereof Entity Type|an instance or collection of the type or a subtype thereof -and the second path expression references one of the following model elements: +A binding parameter is "addressed via a resource path" if the path expression addressing the +binding parameter starts with the resource path, it may then continue with segments +described in [OData-URL](#ODataURL), sections 4.6 through 4.12. If the given path +addresses a collection, the binding parameter can also be a single instance of that +collection (see [OData-URL](#ODataURL), sections 4.9 and 4.10). + +The second path expression references one of the following model elements: - Action overload - all overloads of an Action - Function overload From 2c63eb76637b5891f7b26e1bb49001cb4ecbff44 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Heiko=20Thei=C3=9Fen?= Date: Thu, 18 Jan 2024 13:02:11 +0100 Subject: [PATCH 13/15] Rephrased --- docs/odata-csdl-json/odata-csdl-json.html | 2 +- docs/odata-csdl-json/odata-csdl-json.md | 4 ++-- docs/odata-csdl-xml/odata-csdl-xml.html | 2 +- docs/odata-csdl-xml/odata-csdl-xml.md | 4 ++-- odata-csdl/14 Vocabulary and Annotation.md | 4 ++-- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/odata-csdl-json/odata-csdl-json.html b/docs/odata-csdl-json/odata-csdl-json.html index a6b8a637c..b70ab7053 100644 --- a/docs/odata-csdl-json/odata-csdl-json.html +++ b/docs/odata-csdl-json/odata-csdl-json.html @@ -2442,7 +2442,7 @@

          14.2.2 Target

          -

          A binding parameter is “addressed via a resource path” if the path expression addressing the binding parameter starts with the resource path, it may then continue with segments described in OData-URL, sections 4.6 through 4.12. If the given path addresses a collection, the binding parameter can also be a single instance of that collection (see OData-URL, sections 4.9 and 4.10).

          +

          A binding parameter is “addressed via a resource path” if the path expression addressing the binding parameter starts with the resource path, it may then continue with segments described in OData-URL, sections 4.6 through 4.12. If the resource path addresses a collection, the binding parameter can also be a single instance of that collection if a segment described in OData-URL, sections 4.9 and 4.10, follows.

          The second path expression references one of the following model elements:

          • Action overload
          • diff --git a/docs/odata-csdl-json/odata-csdl-json.md b/docs/odata-csdl-json/odata-csdl-json.md index 21b597e32..affa595f4 100644 --- a/docs/odata-csdl-json/odata-csdl-json.md +++ b/docs/odata-csdl-json/odata-csdl-json.md @@ -3893,9 +3893,9 @@ Entity Type|an instance or collection of the type or a subtype thereof A binding parameter is "addressed via a resource path" if the path expression addressing the binding parameter starts with the resource path, it may then continue with segments -described in [OData-URL](#ODataURL), sections 4.6 through 4.12. If the given path +described in [OData-URL](#ODataURL), sections 4.6 through 4.12. If the resource path addresses a collection, the binding parameter can also be a single instance of that -collection (see [OData-URL](#ODataURL), sections 4.9 and 4.10). +collection if a segment described in [OData-URL](#ODataURL), sections 4.9 and 4.10, follows. The second path expression references one of the following model elements: - Action overload diff --git a/docs/odata-csdl-xml/odata-csdl-xml.html b/docs/odata-csdl-xml/odata-csdl-xml.html index 88922c5ab..a42b678fe 100644 --- a/docs/odata-csdl-xml/odata-csdl-xml.html +++ b/docs/odata-csdl-xml/odata-csdl-xml.html @@ -2258,7 +2258,7 @@

            14.2.2 Target

            -

            A binding parameter is “addressed via a resource path” if the path expression addressing the binding parameter starts with the resource path, it may then continue with segments described in OData-URL, sections 4.6 through 4.12. If the given path addresses a collection, the binding parameter can also be a single instance of that collection (see OData-URL, sections 4.9 and 4.10).

            +

            A binding parameter is “addressed via a resource path” if the path expression addressing the binding parameter starts with the resource path, it may then continue with segments described in OData-URL, sections 4.6 through 4.12. If the resource path addresses a collection, the binding parameter can also be a single instance of that collection if a segment described in OData-URL, sections 4.9 and 4.10, follows.

            The second path expression references one of the following model elements:

            • Action overload
            • diff --git a/docs/odata-csdl-xml/odata-csdl-xml.md b/docs/odata-csdl-xml/odata-csdl-xml.md index 81f488d79..aa3306642 100644 --- a/docs/odata-csdl-xml/odata-csdl-xml.md +++ b/docs/odata-csdl-xml/odata-csdl-xml.md @@ -3706,9 +3706,9 @@ Entity Type|an instance or collection of the type or a subtype thereof A binding parameter is "addressed via a resource path" if the path expression addressing the binding parameter starts with the resource path, it may then continue with segments -described in [OData-URL](#ODataURL), sections 4.6 through 4.12. If the given path +described in [OData-URL](#ODataURL), sections 4.6 through 4.12. If the resource path addresses a collection, the binding parameter can also be a single instance of that -collection (see [OData-URL](#ODataURL), sections 4.9 and 4.10). +collection if a segment described in [OData-URL](#ODataURL), sections 4.9 and 4.10, follows. The second path expression references one of the following model elements: - Action overload diff --git a/odata-csdl/14 Vocabulary and Annotation.md b/odata-csdl/14 Vocabulary and Annotation.md index 07a20dea2..95b7a72e7 100644 --- a/odata-csdl/14 Vocabulary and Annotation.md +++ b/odata-csdl/14 Vocabulary and Annotation.md @@ -694,9 +694,9 @@ Entity Type|an instance or collection of the type or a subtype thereof A binding parameter is "addressed via a resource path" if the path expression addressing the binding parameter starts with the resource path, it may then continue with segments -described in [OData-URL](#ODataURL), sections 4.6 through 4.12. If the given path +described in [OData-URL](#ODataURL), sections 4.6 through 4.12. If the resource path addresses a collection, the binding parameter can also be a single instance of that -collection (see [OData-URL](#ODataURL), sections 4.9 and 4.10). +collection if a segment described in [OData-URL](#ODataURL), sections 4.9 and 4.10, follows. The second path expression references one of the following model elements: - Action overload From 99fa5de5e683ff83d2d1cd303cf35f2fbceac72a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Heiko=20Thei=C3=9Fen?= Date: Thu, 18 Jan 2024 13:52:36 +0100 Subject: [PATCH 14/15] Fine-tuning --- docs/odata-csdl-json/odata-csdl-json.html | 4 ++-- docs/odata-csdl-json/odata-csdl-json.md | 4 ++-- docs/odata-csdl-xml/odata-csdl-xml.html | 4 ++-- docs/odata-csdl-xml/odata-csdl-xml.md | 4 ++-- odata-csdl/14 Vocabulary and Annotation.md | 4 ++-- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/docs/odata-csdl-json/odata-csdl-json.html b/docs/odata-csdl-json/odata-csdl-json.html index b70ab7053..a8db09542 100644 --- a/docs/odata-csdl-json/odata-csdl-json.html +++ b/docs/odata-csdl-json/odata-csdl-json.html @@ -2418,11 +2418,11 @@

              14.2.2 Target

              Navigation Property via container -addressed via the resource path to the navigation property +addressed via a resource path to the navigation property Property via container -addressed via the resource path to the property +addressed via a resource path to the property Navigation Property via structured type diff --git a/docs/odata-csdl-json/odata-csdl-json.md b/docs/odata-csdl-json/odata-csdl-json.md index affa595f4..5bdf04510 100644 --- a/docs/odata-csdl-json/odata-csdl-json.md +++ b/docs/odata-csdl-json/odata-csdl-json.md @@ -3884,8 +3884,8 @@ Model element|means the binding parameter must be -------------|----------------------------------- Entity Set|an instance or collection of instances from the entity set Singleton|the singleton -Navigation Property via container|addressed via the resource path to the navigation property -Property via container|addressed via the resource path to the property +Navigation Property via container|addressed via a resource path to the navigation property +Property via container|addressed via a resource path to the property Navigation Property via structured type|addressed by a path that traverses the structured type Property via structured type|addressed by a path that traverses the structured type Complex Type|an instance or collection of the type or a subtype thereof diff --git a/docs/odata-csdl-xml/odata-csdl-xml.html b/docs/odata-csdl-xml/odata-csdl-xml.html index a42b678fe..a89705dca 100644 --- a/docs/odata-csdl-xml/odata-csdl-xml.html +++ b/docs/odata-csdl-xml/odata-csdl-xml.html @@ -2234,11 +2234,11 @@

              14.2.2 Target

              Navigation Property via container -addressed via the resource path to the navigation property +addressed via a resource path to the navigation property Property via container -addressed via the resource path to the property +addressed via a resource path to the property Navigation Property via structured type diff --git a/docs/odata-csdl-xml/odata-csdl-xml.md b/docs/odata-csdl-xml/odata-csdl-xml.md index aa3306642..391c29b5f 100644 --- a/docs/odata-csdl-xml/odata-csdl-xml.md +++ b/docs/odata-csdl-xml/odata-csdl-xml.md @@ -3697,8 +3697,8 @@ Model element|means the binding parameter must be -------------|----------------------------------- Entity Set|an instance or collection of instances from the entity set Singleton|the singleton -Navigation Property via container|addressed via the resource path to the navigation property -Property via container|addressed via the resource path to the property +Navigation Property via container|addressed via a resource path to the navigation property +Property via container|addressed via a resource path to the property Navigation Property via structured type|addressed by a path that traverses the structured type Property via structured type|addressed by a path that traverses the structured type Complex Type|an instance or collection of the type or a subtype thereof diff --git a/odata-csdl/14 Vocabulary and Annotation.md b/odata-csdl/14 Vocabulary and Annotation.md index 95b7a72e7..970c5c4ae 100644 --- a/odata-csdl/14 Vocabulary and Annotation.md +++ b/odata-csdl/14 Vocabulary and Annotation.md @@ -685,8 +685,8 @@ Model element|means the binding parameter must be -------------|----------------------------------- Entity Set|an instance or collection of instances from the entity set Singleton|the singleton -Navigation Property via container|addressed via the resource path to the navigation property -Property via container|addressed via the resource path to the property +Navigation Property via container|addressed via a resource path to the navigation property +Property via container|addressed via a resource path to the property Navigation Property via structured type|addressed by a path that traverses the structured type Property via structured type|addressed by a path that traverses the structured type Complex Type|an instance or collection of the type or a subtype thereof From 36ce19c732503fc56d91452f69096bbfae0b138f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Heiko=20Thei=C3=9Fen?= Date: Fri, 19 Jan 2024 09:40:38 +0100 Subject: [PATCH 15/15] Redefine the "Property via structured type" case --- docs/odata-csdl-json/odata-csdl-json.html | 6 +++--- docs/odata-csdl-json/odata-csdl-json.md | 6 +++--- docs/odata-csdl-xml/odata-csdl-xml.html | 6 +++--- docs/odata-csdl-xml/odata-csdl-xml.md | 6 +++--- odata-csdl/14 Vocabulary and Annotation.md | 6 +++--- 5 files changed, 15 insertions(+), 15 deletions(-) diff --git a/docs/odata-csdl-json/odata-csdl-json.html b/docs/odata-csdl-json/odata-csdl-json.html index a8db09542..096d73254 100644 --- a/docs/odata-csdl-json/odata-csdl-json.html +++ b/docs/odata-csdl-json/odata-csdl-json.html @@ -2422,15 +2422,15 @@

              14.2.2 Target

              Property via container -addressed via a resource path to the property +addressed via a resource path to the structural property Navigation Property via structured type -addressed by a path that traverses the structured type +addressed via a resource path to the navigation property that traverses an instance or collection of the structured type Property via structured type -addressed by a path that traverses the structured type +addressed via a resource path to the structural property that traverses an instance or collection of the structured type Complex Type diff --git a/docs/odata-csdl-json/odata-csdl-json.md b/docs/odata-csdl-json/odata-csdl-json.md index 5bdf04510..e2a966a80 100644 --- a/docs/odata-csdl-json/odata-csdl-json.md +++ b/docs/odata-csdl-json/odata-csdl-json.md @@ -3885,9 +3885,9 @@ Model element|means the binding parameter must be Entity Set|an instance or collection of instances from the entity set Singleton|the singleton Navigation Property via container|addressed via a resource path to the navigation property -Property via container|addressed via a resource path to the property -Navigation Property via structured type|addressed by a path that traverses the structured type -Property via structured type|addressed by a path that traverses the structured type +Property via container|addressed via a resource path to the structural property +Navigation Property via structured type|addressed via a resource path to the navigation property that traverses an instance or collection of the structured type +Property via structured type|addressed via a resource path to the structural property that traverses an instance or collection of the structured type Complex Type|an instance or collection of the type or a subtype thereof Entity Type|an instance or collection of the type or a subtype thereof diff --git a/docs/odata-csdl-xml/odata-csdl-xml.html b/docs/odata-csdl-xml/odata-csdl-xml.html index a89705dca..815354132 100644 --- a/docs/odata-csdl-xml/odata-csdl-xml.html +++ b/docs/odata-csdl-xml/odata-csdl-xml.html @@ -2238,15 +2238,15 @@

              14.2.2 Target

              Property via container -addressed via a resource path to the property +addressed via a resource path to the structural property Navigation Property via structured type -addressed by a path that traverses the structured type +addressed via a resource path to the navigation property that traverses an instance or collection of the structured type Property via structured type -addressed by a path that traverses the structured type +addressed via a resource path to the structural property that traverses an instance or collection of the structured type Complex Type diff --git a/docs/odata-csdl-xml/odata-csdl-xml.md b/docs/odata-csdl-xml/odata-csdl-xml.md index 391c29b5f..ca52653eb 100644 --- a/docs/odata-csdl-xml/odata-csdl-xml.md +++ b/docs/odata-csdl-xml/odata-csdl-xml.md @@ -3698,9 +3698,9 @@ Model element|means the binding parameter must be Entity Set|an instance or collection of instances from the entity set Singleton|the singleton Navigation Property via container|addressed via a resource path to the navigation property -Property via container|addressed via a resource path to the property -Navigation Property via structured type|addressed by a path that traverses the structured type -Property via structured type|addressed by a path that traverses the structured type +Property via container|addressed via a resource path to the structural property +Navigation Property via structured type|addressed via a resource path to the navigation property that traverses an instance or collection of the structured type +Property via structured type|addressed via a resource path to the structural property that traverses an instance or collection of the structured type Complex Type|an instance or collection of the type or a subtype thereof Entity Type|an instance or collection of the type or a subtype thereof diff --git a/odata-csdl/14 Vocabulary and Annotation.md b/odata-csdl/14 Vocabulary and Annotation.md index 970c5c4ae..6631e8a7a 100644 --- a/odata-csdl/14 Vocabulary and Annotation.md +++ b/odata-csdl/14 Vocabulary and Annotation.md @@ -686,9 +686,9 @@ Model element|means the binding parameter must be Entity Set|an instance or collection of instances from the entity set Singleton|the singleton Navigation Property via container|addressed via a resource path to the navigation property -Property via container|addressed via a resource path to the property -Navigation Property via structured type|addressed by a path that traverses the structured type -Property via structured type|addressed by a path that traverses the structured type +Property via container|addressed via a resource path to the structural property +Navigation Property via structured type|addressed via a resource path to the navigation property that traverses an instance or collection of the structured type +Property via structured type|addressed via a resource path to the structural property that traverses an instance or collection of the structured type Complex Type|an instance or collection of the type or a subtype thereof Entity Type|an instance or collection of the type or a subtype thereof