OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

odata message

[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]