[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: [OASIS Issue Tracker] (ODATA-1403) Variant of NavigtionPropertyBinding for containment navigation properties
Heiko created ODATA-1403: ---------------------------- Summary: Variant of NavigtionPropertyBinding for containment navigation properties Key: ODATA-1403 URL: https://issues.oasis-open.org/browse/ODATA-1403 Project: OASIS Open Data Protocol (OData) TC Issue Type: New Feature Reporter: Heiko [NavigationPropertyBindings|https://docs.oasis-open.org/odata/odata-csdl-xml/v4.01/os/odata-csdl-xml-v4.01-os.html#sec_NavigationPropertyBinding] are used to assign an entity set to a Path ending in a non-containment navigation property. The assigned entity set can then be the target for annotations like Aggregation.CustomAggregate (see https://issues.oasis-open.org/browse/ODATA-1382). Paths ending in a containment navigation property, which implicitly define an entity set, are treated totally different, however. In order to define a custom aggregate on this implicit entity set, the annotation Capabilities.NavigationRestrictions with type Aggregation.NavigationPropertyAggregationCapabilities/CustomAggregates must be used. I propose a "variant" of NavigationPropertyBinding that can be used with a Path ending in a containment navigation property and which do not specify a [BindingTarget|https://docs.oasis-open.org/odata/odata-csdl-xml/v4.01/os/odata-csdl-xml-v4.01-os.html#sec_BindingTarget], but serve as target for annotations. This would make the NavigationRestrictions annotation obsolete and the example in [#92|https://github.com/oasis-tcs/odata-vocabularies/pull/92] could be rewritten as {code:xml} <Singleton Name="me" â> <NavigationPropertyBindingVariant Path="Mails"> <Annotation Term="Aggregation.CustomAggregate" Qualifier="JunkRating" String="Edm.Int32"/> </NavigationPropertyBindingVariant> </Singleton> {code} Instead of introducing a new element {{NavigationPropertyBindingVariant}}, the existing {{NavigationPropertyBinding}} could be extended: The {{Target}} attribute is no longer mandatory, and if it is absent * the {{Path}} must end in a containment navigation property * the {{NavigationPropertyBinding}} can be the target for any annotation whose term {{AppliesTo="EntitySet"}} (no need to specify {{AppliesTo="NavigationPropertyBinding"}}). These annotations then apply to the implicit entity set defined by the containment navigation property. -- This message was sent by Atlassian Jira (v8.3.3#803004)
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]