Uploaded image for project: 'OASIS Open Data Protocol (OData) TC'
  1. OASIS Open Data Protocol (OData) TC
  2. ODATA-1060

Improve specification of element response requirements

    XMLWordPrintable

    Details

    • Type: New Feature
    • Status: New
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: V4.0_CSD01
    • Fix Version/s: V4.02
    • Labels:
      None
    • Proposal:
      Hide

      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.

      Show
      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.

      Description

      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.

        Attachments

          Activity

            People

            • Assignee:
              george.ericson George Ericson
              Reporter:
              george.ericson George Ericson
            • Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated: