OData-CSDL, section "Path evaluation" says that certain paths "resolve to a type" and leaves unclear what this means for instance paths, especially since the annotation target may be
- a single instance (like for `Measures.ISOCurrency`)
- or a collection (like for `Capabilities.UpdateRestrictions` where the path is evaluated for each instance in turn).
The current wording hides the fact that the specification does not have an overarching notion of "current instance" or "current collection". These have rather been introduced in an adhoc manner and were therefore not available in the section on path evaluation or in the definition of the aggregate function (see
ODATA-1451). Compare this to the XPath specification which begins by saying
Expression evaluation occurs with respect to a context. ... The context consists of:
- a node (the context node)
- a pair of non-zero positive integers (the context position and the context size)
- a set of variable bindings
- a function library
- the set of namespace declarations in scope for the expression
and then makes use of these terms throughout the text.
Suggestion to try something similar in the OData spec.