Details

    • Type: Sub-task
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: V4.0_ERRATA02
    • Fix Version/s: V4.0_ERRATA03
    • Component/s: Vocabularies
    • Labels:
      None
    • Environment:

      [Proposed]

    • Proposal:
      Hide

      Rename "OnlyDeclaredProperties" to "AdditionalProperties".
      Make apply to ComplexTypes as well as EntityTypes
      Clarify that, if the type has the OpenType=true attribute, and the annotation specifying that additional properties are not allowed, that this usage of the type is closed and does not support additional properties.

      Applied:
      https://tools.oasis-open.org/version-control/browse/wsvn/odata/trunk/spec/vocabularies/Org.OData.Core.V1.xml?rev=682

      Show
      Rename "OnlyDeclaredProperties" to "AdditionalProperties". Make apply to ComplexTypes as well as EntityTypes Clarify that, if the type has the OpenType=true attribute, and the annotation specifying that additional properties are not allowed, that this usage of the type is closed and does not support additional properties. Applied: https://tools.oasis-open.org/version-control/browse/wsvn/odata/trunk/spec/vocabularies/Org.OData.Core.V1.xml?rev=682

      Description

      The new "OnlyDeclaredProperties" should apply to complex types as well as entity types, since both can be open and both can have dynamic properties unless otherwise annotated.

      Also, the resolution suggested one of two alternatives; either calling the term "AdditionalProperties", consistent with the JSON Schema spec, or coming up with a name that meant dynamic properties wouldn't exist, so we could define a default and use it as a tagging term. We left it to the editors in the hopes that we could find a better name than "OnlyDeclaredProperties" for the tagging option, but since this should be the exception to what clients should be prepared to accept, I would prefer to go with the (more intuitive) option of using "AdditionalProperties" and require the service to provide the value "false" for cases where additional properties were not allowed:
      <Annotation Term="Core.AdditionalProperties" Bool="false"/>

      Finally, we should define what happens if this annotation specifies that additional properties are not allowed, but the type is marked as open. A type may be defined as open in a common definition, but restricted in a particular usage, so it probably makes sense for the annotation to override the attribute.

        Attachments

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              mikep Michael Pizzo
            • Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: