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