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-793) Expand * on complex type


     [ https://issues.oasis-open.org/browse/ODATA-793?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ralf Handl updated ODATA-793:
-----------------------------

    Proposal: 
1. * should include nav props on complex types (arbitrarily deep)
2. Allow for the * expand to be used on complex type properties as well as specific sub types as well. The new ABNF for $expand would look something like:

expand               = '$expand' EQ expandItem *( COMMA expandItem )
expandItem           = expandStar
                     / expandPath 
                       ( expandNavigationProperty
                       / expandStar
                       )
expandPath           = [ ( qualifiedEntityTypeName / qualifiedComplexTypeName ) "/" ] 
                       *( ( complexProperty / complexColProperty ) "/" [ qualifiedComplexTypeName "/" ] )
expandNavigationProp = navigationProperty 
                       [ "/" qualifiedEntityTypeName ]
                       [ ref   [ OPEN expandRefOption   *( SEMI expandRefOption   ) CLOSE ]
                       / count [ OPEN expandCountOption *( SEMI expandCountOption ) CLOSE ]
                       /         OPEN expandOption      *( SEMI expandOption      ) CLOSE 
                       ]
expandStar           = [ STAR [ ref / OPEN levels CLOSE ] ]

Applied:
https://tools.oasis-open.org/version-control/browse/wsvn/odata/trunk/spec/ABNF/odata-abnf-construction-rules.txt?rev=678
https://tools.oasis-open.org/version-control/browse/wsvn/odata/trunk/spec/ABNF/odata-abnf-testcases.xml?rev=678


  was:
1. * should include nav props on complex types (arbitrarily deep)
2. Allow for the * expand to be used on complex type properties as well as specific sub types as well. The new ABNF for $expand would look something like:

expand               = '$expand' EQ expandItem *( COMMA expandItem )
expandItem           = expandStar
                     / expandPath 
                       ( expandNavigationProperty
                       / expandStar
                       )
expandPath           = [ ( qualifiedEntityTypeName / qualifiedComplexTypeName ) "/" ] 
                       *( ( complexProperty / complexColProperty ) "/" [ qualifiedComplexTypeName "/" ] )
expandNavigationProp = navigationProperty 
                       [ "/" qualifiedEntityTypeName ]
                       [ ref   [ OPEN expandRefOption   *( SEMI expandRefOption   ) CLOSE ]
                       / count [ OPEN expandCountOption *( SEMI expandCountOption ) CLOSE ]
                       /         OPEN expandOption      *( SEMI expandOption      ) CLOSE 
                       ]
expandStar           = [ STAR [ ref / OPEN levels CLOSE ] ]



> Expand * on complex type
> ------------------------
>
>                 Key: ODATA-793
>                 URL: https://issues.oasis-open.org/browse/ODATA-793
>             Project: OASIS Open Data Protocol (OData) TC
>          Issue Type: Improvement
>          Components: OData ABNF Construction Rules, OData URL Conventions
>    Affects Versions: V4.0_ERRATA02
>         Environment: [Applying]
>            Reporter: Hubert Heijkers
>             Fix For: V4.0_ERRATA03
>
>
> Currently we can use a * on the expand to ask the service to expand all available navigation properties of an entity type. However, it is currently not possible to express the same intend for all navigation properties of a complex type.
> For further clarification we might want to document if a $expand=* is intended to expand all the navigation properties of complex types as well and/or if this is recursive, i.o.w. is it to be expected that a navigation property of a complex type in a complex type is to be expanded in that case too.
> Our current ABNF doesn't allow us to expand all the navigation properties of a particular sub type either, something one might expect to be able to do too.
> So IMHO the following examples should be supported as well:
> $expand=ComplexProp/*
> $expand=ComplexProp/ComplexProp/*
> $expand=ComplexProp/model.type/ComplexProp/*
> $expand=model.type/ComplexProp/*
> $expand=model.type/ComplexProp/model.type/ComplexProp/*
> As with the existing use cases of *, each of these could be followed by either the /$ref or ($levels=max) segments.



--
This message was sent by Atlassian JIRA
(v6.2.2#6258)


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]