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] Issue Comment Edited: (ODATA-406) Attribute ContainsTarget (public comment c201305e00009)


    [ http://tools.oasis-open.org/issues/browse/ODATA-406?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=33569#action_33569 ] 

Ralf Handl edited comment on ODATA-406 at 5/24/13 1:51 PM:
-----------------------------------------------------------

Consulting OData V3 I found two behavioral aspects of containment navigation properties:

Nonrecursive contained EntitySets are accessed only through the URL of the resource that represents the containment NavigationProperty on the parent Entity instance. Clients MUST NOT assume that nonrecursive contained EntitySets can be accessed directly from the ServiceRoot.

Recursively contained EntitySets MUST be accessible directly from the ServiceRoot for querying and inserting "root" entity instances that are not contained by another instance. Entity instances that are contained by another entity instance, the querying and inserting operations are supported via the URL of the resource that represents the container NavigationProperty on the parent entity instance.


The problem with both statements is that they talk about "contained entity sets", but actually there's no such thing. Only entities can be contained, and contained entities don't live in declared entity sets, see proposal.

      was (Author: ralfhandl):
    Consulting OData V3 I found two behavioral aspects of containment navigation properties:

Nonrecursive contained EntitySets are accessed only through the URL of the resource that represents the containment NavigationProperty on the parent Entity instance. Clients MUST NOT assume that nonrecursive contained EntitySets can be accessed directly from the ServiceRoot.

Recursively contained EntitySets MUST be accessible directly from the ServiceRoot for querying and inserting "root" entity instances that are not contained by another instance. Entity instances that are contained by another entity instance, the querying and inserting operations are supported via the URL of the resource that represents the container NavigationProperty on the parent entity instance.


The nonrecursive containment is rather problematic, and I would not like to take it over for V4:
- We can already hide entity sets with the IncludeInServiceDocument="false" attribute independent of containment. 
- Figuring out that an entity set is the target of a NavigationPropertyBinding for a navigation property that is marked with ContainsTarget="true" sounds challenging, at least when reading the sentence for the first three times.
- Neither V3 nor V4 defines an existential dependency attached to containment. For that we have the OnDelete element. Which by the way is currently at the dependent entity, which we might want to reconsider, see ODATA-411. If we do that, we can live without nonrecursive containment and all the complicated formulations around it.

PROPOSAL: remove nonrecursive containment.


The recursive containment seems more interesting: apparently here I can query the entity set, but it will give me only the "root" entities and hide "contained" entities from direct access. That's something I'd like to have in V4.


  
> Attribute ContainsTarget (public comment c201305e00009)
> -------------------------------------------------------
>
>                 Key: ODATA-406
>                 URL: http://tools.oasis-open.org/issues/browse/ODATA-406
>             Project: OASIS Open Data Protocol (OData) TC
>          Issue Type: Improvement
>          Components: OData CSDL
>    Affects Versions: V4.0_CSD01
>         Environment: [Proposed]
>            Reporter: Stefan Drees
>            Priority: Minor
>             Fix For: V4.0_CSD02
>
>
> The public comment [c201305e00009](https://lists.oasis-open.org/archives/odata-comment/201305/msg00009.html) with title "Attribute ContainsTarget" states:
> """
> In section 7.1.5 Attribute ContainsTarget  of [OData-Part3]  the semantics is unlclear.
> The following wording is used:
> If the value assigned to the ContainsTarget attribute is true, entities of the entity type that specifies the navigation property contain the entities referenced by the navigation property.
> What does "contain" mean? Does it impose any additional restriction?
> """

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