|
| 1 | + |
| 2 | +== Schema change |
| 3 | + |
| 4 | +=== General |
| 5 | + |
| 6 | +The schema change structure captures modifications to the structure and |
| 7 | +semantics of an EXPRESS schema across different editions or versions. It |
| 8 | +captures additions, modifications, and removals of schema elements such as |
| 9 | +entities, types, functions, and rules. |
| 10 | + |
| 11 | +The structure is built on the following constructs: |
| 12 | + |
| 13 | +* Edition changes: Each edition or version of the schema, detailing what |
| 14 | +changed. |
| 15 | + |
| 16 | +* Item changes: Specific elements that were added, modified, or removed in an |
| 17 | +edition. |
| 18 | + |
| 19 | +Syntax: |
| 20 | + |
| 21 | +[source,yaml] |
| 22 | +---- |
| 23 | +schema: String (required) |
| 24 | + # Name of the EXPRESS schema |
| 25 | +editions: |
| 26 | + - {edition change 1} |
| 27 | + - {edition change 2} |
| 28 | +---- |
| 29 | + |
| 30 | + |
| 31 | +=== Edition change |
| 32 | + |
| 33 | +Each edition change represents a specific version of the schema and details |
| 34 | +the changes made in that version. |
| 35 | + |
| 36 | +Syntax: |
| 37 | + |
| 38 | +[source,yaml] |
| 39 | +---- |
| 40 | +version: String (required) |
| 41 | +# Version number for this change edition |
| 42 | +description: String (required) |
| 43 | +# Description of changes in this edition |
| 44 | +additions: |
| 45 | + - {item change 1} |
| 46 | + - {item change 2} |
| 47 | +modifications: |
| 48 | + - {item change 1} |
| 49 | + - {item change 2} |
| 50 | +removals: |
| 51 | + - {item change 1} |
| 52 | + - {item change 2} |
| 53 | +---- |
| 54 | + |
| 55 | +Fields: |
| 56 | + |
| 57 | +`version`:: The version number (string) (required). |
| 58 | ++ |
| 59 | +[example] |
| 60 | +`2`, `3.1`, `2024-06`. |
| 61 | + |
| 62 | +`description`:: A multi-line string describing the changes made in this edition |
| 63 | +(required). Should provide a comprehensive overview of what changed and why. |
| 64 | + |
| 65 | +`additions`:: An array of added elements as item changes (optional). |
| 66 | + |
| 67 | +`modifications`:: An array of modified elements as item changes (optional). |
| 68 | + |
| 69 | +`removals`:: An array of removed elements as item changes (optional). |
| 70 | + |
| 71 | + |
| 72 | + |
| 73 | +=== Item change |
| 74 | + |
| 75 | +Each item change represents a specific schema element that was added, modified, |
| 76 | +or removed. |
| 77 | + |
| 78 | +Syntax: |
| 79 | + |
| 80 | +[source,yaml] |
| 81 | +---- |
| 82 | +type: String (required) |
| 83 | +# Type of the EXPRESS construct (e.g., ENTITY, TYPE, FUNCTION) |
| 84 | +name: String (required) |
| 85 | +# Name of the EXPRESS construct |
| 86 | +---- |
| 87 | + |
| 88 | +Fields: |
| 89 | + |
| 90 | +`type`:: The type of the EXPRESS construct (string) (required). Allowed values |
| 91 | +are: |
| 92 | + |
| 93 | +`ENTITY`::: Entity definitions |
| 94 | +`TYPE`::: Type definitions (including SELECT, ENUMERATION) |
| 95 | +`FUNCTION`::: Function definitions |
| 96 | +`RULE`::: Rule definitions |
| 97 | +`PROCEDURE`::: Procedure definitions |
| 98 | +`CONSTANT`::: Constant definitions |
| 99 | + |
| 100 | +`name`:: The name of the EXPRESS construct (string) (required). |
| 101 | + |
0 commit comments