-
Type: Improvement
-
Status: Closed
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: V4.0_CSD01
-
Fix Version/s: V4.0_CSD02
-
Component/s: Protocol
-
Labels:None
-
Environment:
[Applied]
-
Proposal:
-
Resolution:
odata-v4.0-csprd01-part1-protocol, section 3 is titled "Data Model" but appears to be an unnumbered list of definitions. And, annotations are split out into a separate subsection.
The wording of the definitions (if that is what they are) is consistent from definition to definition. To illustrate:
****
Entity types are nominal structured types with a key. They define the named properties of an entity and MAY define relationships with, or derived by single inheritance from, other entity types.
The entity key of an entity type is formed from a subset of primitive properties (e.g. CustomerId, OrderId, LineId, etc.) of the entity type
Complex types are keyless nominal structured types consisting of a set of properties. These are value types that lack identity. Complex types are commonly used as property values in an entity or as parameters to operations.
****
First, note that "nominal" isn't defined until 4.1.
If this is a list of definitions or details of the data model, shouldn't it be inclusive and complete?
Second, "Entity types are nominal structured types with a key."
key?
Do we mean "entity key," which is defined in the next paragraph?
Third, "Complex types are keyless nominal structured types consisting of a set of properties. These are value types that lack identity."
lack identity? If nominal means what 4.1 suggests, then complex types have names. That leads me to puzzle over what it means to lack identity? Do we mean it lacks a key?
FYI, identity is used only one other time in odata-v4.0-csprd01-part1-protocol, at 11.4.9.4 to say that:
"have no individual identity, PATCH is not supported for collection properties.
Services MUST treat collection properties as a unit."
So I am assuming "identity" isn't central to the data model.
I am curious about the reason for nominal versus named, unless that is just a legacy practice.
BTW, the irony of:
"Refer to [OData-CSDL] for more information on the OData entity data model."
in CSDL was not lost on me.