-
Type: New Feature
-
Status: New
-
Priority: Major
-
Resolution: Unresolved
-
Affects Version/s: V4.0_CSD01
-
Fix Version/s: V4.02
-
Component/s: CSDL JSON, CSDL XML, Vocabularies
-
Labels:None
-
Proposal:
Element response requirements:
There is ambiguity on the use and meaning of Nullable.
The reason is a distinction between the semantics of Nullable and whether or not implementation is required.
At least in one example, it is common practice to allow a Nullable=False property to be excluded from a response with the implied meaning of not implemented. The implementation requirement is not a term defined by OData.
Proposal:
1) Add the following Term to Core:
<Term Name="ImplementationRequired" Type="Core.Tag" DefaultValue="false">
<Annotation Term="Core.Description" String="If 'true', implementation of the qualified element is required. If the required element is Nullable and has no value, it may be omitted from a response. Otherwise it must be present in a related response." If an element is not required, it may be omitted from a related response. If an element is not required and is not Nullable and is not present in a response, it may be assumed to have not been implemented. If the element is Nullable and not present in a response, it may either have no value or have not been implemented." />
</Term>
The following summarizes the above:
a. Nullable=True, Implementation=Optional => Omission implies no value or not implemented
b. Nullable=True, Implementation=Required => Omission implies no value
c. Nullable=False, Implementation=Optional => Omission implies not implemented, the value is unknown.
d. Nullable=False, Implementation=Required => Omission is not allowed, the property must indicate Null if no value.