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

Add ability to annotate revisions with information on all elements

    XMLWordPrintable

    Details

    • Proposal:
      Hide

      Create a 'Revisions' term in the Core vocabulary that may be applied to any element. Elements defined in a schema may then evolve over time and with their complete revision history intact. The proposal is as follows:

      <Term Name="Revisions" Type="Collection(Core.RevisionType)">
      <Annotation Term="Core.Description" String="List of revisions of a model element" />
      </Term>
      <ComplexType Name="RevisionType">
      <Property Name="Version" Type="Edm.String">
      <Annotation Term="Core.Description" String="The schema version with which this revision was first published" />
      </Property>
      <Property Name="Kind" Type="Core.RevisionKind">
      <Annotation Term="Core.Description" String="The kind of revision" />
      </Property>
      <Property Name="Description" Type="Edm.String">
      <Annotation Term="Core.Description" String="Text describing the reason for the revision" />
      </Property>
      </ComplexType>
      <EnumType Name="RevisionKind">
      <Member Name="Added">
      <Annotation Term="Core.Description" String="Model element was added" />
      </Member>
      <Member Name="Modified">
      <Annotation Term="Core.Description" String="Model element was modified" />
      </Member>
      <Member Name="Deprecated">
      <Annotation Term="Core.Description" String="Model element was deprecated" />
      </Member>
      </EnumType>

      This new term replaces the term Core.Deprecated proposed in ODATA-1037.

      Show
      Create a 'Revisions' term in the Core vocabulary that may be applied to any element. Elements defined in a schema may then evolve over time and with their complete revision history intact. The proposal is as follows: <Term Name="Revisions" Type="Collection(Core.RevisionType)"> <Annotation Term="Core.Description" String="List of revisions of a model element" /> </Term> <ComplexType Name="RevisionType"> <Property Name="Version" Type="Edm.String"> <Annotation Term="Core.Description" String="The schema version with which this revision was first published" /> </Property> <Property Name="Kind" Type="Core.RevisionKind"> <Annotation Term="Core.Description" String="The kind of revision" /> </Property> <Property Name="Description" Type="Edm.String"> <Annotation Term="Core.Description" String="Text describing the reason for the revision" /> </Property> </ComplexType> <EnumType Name="RevisionKind"> <Member Name="Added"> <Annotation Term="Core.Description" String="Model element was added" /> </Member> <Member Name="Modified"> <Annotation Term="Core.Description" String="Model element was modified" /> </Member> <Member Name="Deprecated"> <Annotation Term="Core.Description" String="Model element was deprecated" /> </Member> </EnumType> This new term replaces the term Core.Deprecated proposed in ODATA-1037 .
    • Resolution:
      Show
      https://github.com/oasis-tcs/odata-vocabularies/commit/2a8a9c5dd39c2e852c51b276e307267d1db6a598

      Description

      Currently there is no defined means to mark revisions to schema. Some organizations have solved this by convention of creating a new schema for each set of revisions, primarily related only by time.
      Each schema represents a new namespace, so we get a proliferation of namespaces. Type definitions are specific to namespaces, but since the evolving types really represent the same type declaration, they are sub classed across these namespaces. This creates an unnecessarily complex model.

        Attachments

          Activity

            People

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

              Dates

              • Created:
                Updated:
                Resolved: