XMLWordPrintable

    Details

    • Proposal:
      Hide

      Add an Edm.Untyped data type that services can use to advertise (in metadata or payloads) that there is a property of a particular name present, but there is no type to describe the structure of the schema. It is essentially treated as a (named) dynamic property.

      The value of an Edm.Untyped property may be a primitive value, a structural value, or a collection. If a collection, it may contain any combination of primitive values, structural values, or collections (this is the only place a collection can contain a collection or a collection can contain a mix of primitive values, structural values, or collections).

      Edm.Untyped could also be used within a payload to specify that the current structured object has no declared type. It is either an anonymous structured (i.e., complex) type or an array.

      All structured dynamic properties, and all children of an Edm.Untyped property, are assumed to be untyped unless they are annotated with the "@odata.type" term, in which case they must conform to the type described by the annotation.

      The Edm.Untyped property may only be returned in schema and payload responses that have been requested with an OData-MaxVersion header value of 4.01 or greater. Services should omit such properties from schema requests with an OData-MaxVersion header of 4.0 and treat such properties in queries and responses as undeclared dynamic properties.

      Show
      Add an Edm.Untyped data type that services can use to advertise (in metadata or payloads) that there is a property of a particular name present, but there is no type to describe the structure of the schema. It is essentially treated as a (named) dynamic property. The value of an Edm.Untyped property may be a primitive value, a structural value, or a collection. If a collection, it may contain any combination of primitive values, structural values, or collections (this is the only place a collection can contain a collection or a collection can contain a mix of primitive values, structural values, or collections). Edm.Untyped could also be used within a payload to specify that the current structured object has no declared type. It is either an anonymous structured (i.e., complex) type or an array. All structured dynamic properties, and all children of an Edm.Untyped property, are assumed to be untyped unless they are annotated with the "@odata.type" term, in which case they must conform to the type described by the annotation. The Edm.Untyped property may only be returned in schema and payload responses that have been requested with an OData-MaxVersion header value of 4.01 or greater. Services should omit such properties from schema requests with an OData-MaxVersion header of 4.0 and treat such properties in queries and responses as undeclared dynamic properties.
    • Resolution:
      Show
      https://www.oasis-open.org/apps/org/workgroup/odata/download.php/59028/odata-v4.01-wd01-part1-protocol.docx https://tools.oasis-open.org/version-control/browse/wsvn/odata/trunk/4.01%20spec/ABNF/odata-abnf-construction-rules.txt https://www.oasis-open.org/apps/org/workgroup/odata/download.php/59031/odata-csdl-xml-v4.01-wd01.docx

      Description

      We see a lot of scenarios where people are building REST services that return JSON payloads, but the JSON they need or want to generate is not supported by OData (for example, a mixed array or an array of arrays). This payload still has structure, it just can't necessarily be described by OData CSDL.

      For such payloads we could add an Edm.Untyped data type. Services could use Edm.Untyped to advertise that there was a property of a particular name present, but there is no type to describe the structure of the schema. It is essentially treated as an open property.

      The value of an Edm.Untyped property may be a primitive value, a structural value, or a collection. If a collection, it may contain any combination of primitive values, structural values, or collections (this is the only place a collection can contain a collection or a collection can contain a mix of primitive values, structural values, or collections).

      Edm.Untyped could also be used within a payload to specify that the current structured object has no declared type. It is either an anonymous structured (i.e., complex) type or an array.

      All structured dynamic properties, and all children of an Edm.Untyped property, are assumed to be untyped unless they are annotated with the "@odata.type" term, in which case they must conform to the type described by the annotation.

        Attachments

          Activity

            People

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

              Dates

              • Created:
                Updated:
                Resolved: