33
44=== General
55
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
6+ The schema change structure is a record of modifications to the structure and
7+ semantics of an EXPRESS schema across different editions.
8+
9+ It records additions, modifications, and removals of schema elements such as
910entities, types, functions, and rules.
1011
1112The structure is built on the following constructs:
1213
13- * Edition changes: Each edition or version of the schema, detailing what
14- changed .
14+ * Edition changes: Changes made to the schema in a specific edition compared to
15+ the previous edition .
1516
16- * Item changes: Specific elements that were added, modified, or removed in an
17- edition.
17+ * Item changes: Specific elements that were added, modified, or removed.
1818
1919Syntax:
2020
@@ -30,16 +30,15 @@ editions:
3030
3131=== Edition change
3232
33- Each edition change represents a specific version of the schema and details
34- the changes made in that version.
33+ Each edition change object details changes between two editions of the schema.
3534
3635Syntax:
3736
3837[source,yaml]
3938----
4039version: String (required)
4140# Version number for this change edition
42- description: String (required )
41+ description: String (optional )
4342# Description of changes in this edition
4443additions:
4544 - {item change 1}
@@ -54,40 +53,47 @@ removals:
5453
5554Fields:
5655
57- `version`:: The version number (string) (required) .
56+ `version`:: (required) The version number (integer). Must be positive .
5857+
5958[example]
60- `2`, `3.1 `, `2024-06 `.
59+ `2`, `3`, `6 `.
6160
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.
61+ `description`:: (optional) A multi-line string describing the changes made in
62+ this edition. Should provide a comprehensive overview of what changed and why.
63+ If not provided, a publication may provide its own boilerplate or summary.
6464
65- `additions`:: An array of added elements as item changes (optional) .
65+ `additions`:: (optional) An array of added elements as item changes.
6666
67- `modifications`:: An array of modified elements as item changes (optional) .
67+ `modifications`:: (optional) An array of modified elements as item changes.
6868
69- `removals`:: An array of removed elements as item changes (optional) .
69+ `removals`:: (optional) An array of removed elements as item changes.
7070
7171
7272
7373=== Item change
7474
7575Each item change represents a specific schema element that was added, modified,
76- or removed.
76+ or removed, and when applicable, references to other EXPRESS constructs .
7777
7878Syntax:
7979
8080[source,yaml]
8181----
82- type: String (required)
8382# Type of the EXPRESS construct (e.g., ENTITY, TYPE, FUNCTION)
84- name : String (required)
83+ type : String (required)
8584# Name of the EXPRESS construct
85+ name: String (required)
86+ # Description of the change
87+ description: Array (optional)
88+ - String
89+ # For USE_FROM or REFERENCE_FROM, list of specific items referenced or used
90+ interfaced_items: Array (optional)
91+ - String
8692----
8793
8894Fields:
8995
90- `type`:: The type of the EXPRESS construct (string) (required ). Allowed values
96+ `type`:: (required) The type of the EXPRESS construct (string). Allowed values
9197are:
9298
9399`ENTITY`::: Entity definitions
96102`RULE`::: Rule definitions
97103`PROCEDURE`::: Procedure definitions
98104`CONSTANT`::: Constant definitions
105+ `REFERENCE_FROM`::: A reference from another schema, with an additional field
106+ `interfaced_items` listing the specific items referenced when in `additions`.
107+ When used in `deletions`, no `interfaced_items` is needed.
108+ `USE_FROM`::: A use from another schema, with an additional field `interfaced_items`
109+ listing the specific items used when in `additions`. When used in `deletions`, no
110+ `interfaced_items` is needed.
111+
112+ `name`:: (required) The name of the EXPRESS construct (string).
113+
114+ `description`:: (optional) An array of strings describing the change. Each
115+ string represents a description for a single change in the named target.
116+ For instance, if an entity had an attribute removed and a WHERE rule added, the
117+ description array would have two entries, one for each change.
118+ +
119+ [example]
120+ ====
121+ [source,yaml]
122+ ----
123+ ---
124+ schema: Additive_manufacturing_part_and_build_information_arm
125+ editions:
126+ - version: '2'
127+ modifications:
128+ - type: ENTITY
129+ name: Additive_manufacturing_build_direction_element
130+ description:
131+ - Remove Attribute 'identified_item'
132+ - Remove DERIVE 'element_name'
133+ - Add WHERE 'WR1'
134+ - Figure updated
135+ ----
136+ ====
99137
100- `name`:: The name of the EXPRESS construct (string) (required).
101-
138+ `interfaced_items`:: (optional) For `USE_FROM` or `REFERENCE_FROM`, an array of
139+ specific items referenced or used. Not needed when in `deletions`.
140+ +
141+ [example]
142+ ====
143+ [source,yaml]
144+ ----
145+ ---
146+ schema: Document_and_version_identification_mim
147+ editions:
148+ - version: '2'
149+ deletions:
150+ - type: USE_FROM
151+ name: Product_identification_mim
152+ - version: '3'
153+ additions:
154+ - type: USE_FROM
155+ name: product_definition_schema
156+ interfaced_items:
157+ - product_category
158+ - product_related_product_category
159+ ----
160+ ====
0 commit comments