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-849) Add possibility for enumeration types to "extend" another enumeration type

    [ https://issues.oasis-open.org/browse/ODATA-849?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=63466#comment-63466 ] 

Michael Pizzo commented on ODATA-849:

We have approved (and applied) ODATA-940 to add an "AllowedValues" term for enumerating the allowed values for a property without the more rigid semantics of an enumeration.  

If we want to define the ability to base an enumeration on different enumeration, we should do it as part of AllowedValues rather than impose unnatural semantics on enumerations.

> Add possibility for enumeration types to "extend" another enumeration type
> --------------------------------------------------------------------------
>                 Key: ODATA-849
>                 URL: https://issues.oasis-open.org/browse/ODATA-849
>             Project: OASIS Open Data Protocol (OData) TC
>          Issue Type: New Feature
>          Components: OData CSDL
>    Affects Versions: V4.0_ERRATA02
>         Environment: Enum Types
>            Reporter: Michael Pizzo
>            Priority: Minor
>             Fix For: V4.01_WD01
> [Alternative to ODATA-494]
> We currently don't have a way for adding values to an enumeration type defined by a different schema. This would be helpful for defining custom vocabularies that extend base vocabularies. 
> However, defining inheritance for enumerations introduces substitutability that is likely to break clients by returning new enumeration values not anticipated by the client (for instance, in a switch statement). 
> An alternative to inheritance would be to introduce the ability for an enumeration type to *definitionally* extend an existing enumeration type. This is similar to what we do with entity containers, which can extend the definition of an existing container without introducing any substitutability. 
> We could even use the same "Extends" attribute, rather than "BaseType" which implies inheritance. 

This message was sent by Atlassian JIRA

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