Foreword
The EXPRESS Language Foundation (“ELF”) is a registered public charity in the US that facilitates the education, standardization, research, promotion, definition, and usage of information modelling and programming languages, with a focus on the EXPRESS language family.
ELF works with international partners and experts across the globe, reflecting the international nature of its mission. More information about ELF is available on the official website (https://www.expresslang.org).
The procedures used to develop this document and those intended for its further maintenance are described in the ELF Directives.
In particular, the different approval criteria needed for the different types of ELF documents should be noted. This document was drafted in accordance with the editorial rules of the ELF Directives.
Attention is drawn to the possibility that some of the elements of this document may be the subject of patent rights. ELF shall not be held responsible for identifying any or all such patent rights. Details of any patent rights identified during the development of the document will be provided in the Introduction.
Any trade name used in this document is information given for the convenience of users and does not constitute an endorsement.
This document was prepared by Technical Committee EXPRESS.
Introduction
This document specifies the YAML format used to track changes in EXPRESS schema files.
EXPRESS changes model in YAML
1 Scope
This document specifies the YAML format used to track changes in EXPRESS schema files.
2 Normative references
The following documents are referred to in the text in such a way that some or all of their content constitutes requirements of this document. For dated references, only the edition cited applies. For undated references, the latest edition of the referenced document (including any amendments) applies.
ISO 10303-1:2024, Industrial automation systems and integration — Product data representation and exchange — Part 1: Overview and fundamental principles
ISO 10303-11:2004, Industrial automation systems and integration — Product data representation and exchange — Part 11: Description methods: The EXPRESS language reference manual
3 Terms and definitions
For the purposes of this document, the following terms and definitions apply.
ISO and IEC maintain terminology databases for use in standardization at the following addresses:
ISO Online browsing platform: available at https://www.iso.org/obp
IEC Electropedia: available at https://www.electropedia.org
change
modification to an EXPRESS schema that alters the structure or semantics of the schema
4 Format structure
The EXPRESS Changes YAML format follows this basic structure:
path: String (required)
# Relative path to the EXPRESS file
changes:
- type: String (required)
# Type of change: add, remove, modify
entity: String (required)
# Name of the entity being changed
details: String (required)
# Description of the change
original: String (optional)
# Original content (for modify/remove)
new: String (optional)
# New content (for add/modify)
Figure 1
5 Change types
5.1 Add
Used when adding new elements to the schema.
EXAMPLE — Example
path: data/schema.exp
changes:
- type: add
entity: PERSON
details: Add new entity for representing individuals
new: |
ENTITY PERSON;
name: STRING;
age: INTEGER;
END_ENTITY;
5.2 Remove
Used when removing elements from the schema.
EXAMPLE — Example
path: data/schema.exp
changes:
- type: remove
entity: OBSOLETE_TYPE
details: Remove deprecated type definition
original: |
TYPE OBSOLETE_TYPE = INTEGER;
END_TYPE;
5.3 Modify
Used when modifying existing elements.
EXAMPLE — Example
path: data/schema.exp
changes:
- type: modify
entity: PERSON
details: Add email attribute to PERSON entity
original: |
ENTITY PERSON;
name: STRING;
END_ENTITY;
new: |
ENTITY PERSON;
name: STRING;
email: STRING;
END_ENTITY;
6 Validation rules
The path field must be a valid relative path to an EXPRESS file
Each change must have a type, entity, and details field
original is required for remove and modify types
new is required for add and modify types
Multiple changes can be specified for the same file
7 Usage guidelines
Keep change descriptions clear and specific
Include context in the details field
Maintain proper EXPRESS syntax in original/new content
Use consistent indentation in YAML structure
Bibliography
[1] ISO 10303-21:2016, Industrial automation systems and integration — Product data representation and exchange — Part 21: Implementation methods: Clear text encoding of the exchange structure