[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: [OASIS Issue Tracker] Updated: (ODATA-481) Annotation/Navigation/Path expressions: allow paths to continue after multi-valued navigation to e.g. drill into complex properties
[ http://tools.oasis-open.org/issues/browse/ODATA-481?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Michael Pizzo updated ODATA-481: -------------------------------- Proposal: Allow paths to contain an arbitrary number of single- or multi-valued navigation segments at arbitrary positions. Change section 14.5.12, second paragraph after bullet list from If a path segment is the name of a navigation property that has a cardinality of many, the path MUST NOT have any subsequent segments other than type casts, term casts, or a $count segment. If the last segment is a $count segment, the path evaluates to the number of related entities. to If a path segment is the name of a multi-valued structural or navigation property, the path identifies a collection of instances. This collection is obtained by evaluating the remaining path for each instance of the collection identified by the path up to the multi-valued property. If the remaining path evaluates to a collection of entities, the full path evaluates to the union of these collections. If the remaining path evaluates to a collection of primitive or complex type instances, the full path evaluates to the concatenation of these collections. If the remaining path evaluates to a single entity, the full path evaluates to the set of these entities. If the remaining path evaluates to a single primitive or complex type instance, the full path evaluates to the collection of these instances. If the last segment is a $count segment, the path evaluates to the number of instances identified by the preceding path. Examples: - Path="Items/Product" identifies a collection of products (entities) - Path="Items/Product/Supplier/Address" identifies a collection of addresses (complex type instances) - Path="Friends/EmailAddresses" identifies a collection of email addresses (strings) Provide a similar example for <PropertyPath> traversing a containment relationship. was: Allow paths to contain an arbitrary number of single- or multi-valued navigation segments at arbitrary positions. Change section 14.5.12, second paragraph after bullet list from If a path segment is the name of a navigation property that has a cardinality of many, the path MUST NOT have any subsequent segments other than type casts, term casts, or a $count segment. If the last segment is a $count segment, the path evaluates to the number of related entities. to If a path segment is the name of a multi-valued structural or navigation property, the path identifies a collection of instances. This collection is obtained by evaluating the remaining path for each instance of the collection identified by the path up to the multi-valued property. If the remaining path evaluates to a collection of entities, the full path evaluates to the union of these collections. If the remaining path evaluates to a collection of primitive or complex type instances, the full path evaluates to the concatenation of these collections. If the remaining path evaluates to a single entity, the full path evaluates to the set of these entities. If the remaining path evaluates to a single primitive or complex type instance, the full path evaluates to the collection of these instances. If the last segment is a $count segment, the path evaluates to the number of instances identified by the preceding path. Examples: - Path="Items/Product" identifies a collection of products (entities) - Path="Items/Product/Supplier/Address" identifies a collection of addresses (complex type instances) - Path="Friends/EmailAddresses" identifies a collection of email addresses (strings) Added to proposal direction to provide explicit wording in <PropertyPath> for a containment relationship. > Annotation/Navigation/Path expressions: allow paths to continue after multi-valued navigation to e.g. drill into complex properties > ----------------------------------------------------------------------------------------------------------------------------------- > > Key: ODATA-481 > URL: http://tools.oasis-open.org/issues/browse/ODATA-481 > Project: OASIS Open Data Protocol (OData) TC > Issue Type: Improvement > Components: OData CSDL > Affects Versions: V4.0_CS01 > Environment: [Proposed][CS02] > Reporter: Ralf Handl > Fix For: V4.0_CSD03 > > > CSDL 14.5.12 restricts path expressions to contain at most one multi-valued navigation property which can only be followed by a single type cast or term cast. > This is overly restrictive: drilling into a complex type path after a navigation is straight-forward, and even multiple multi-valued navigations could be resolved by building the union of all targeted collections. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://tools.oasis-open.org/issues/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]