Skip to content

Commit 2942ad5

Browse files
committed
feat: add YAML schemas for schema changes and mapping changes
1 parent 0d0efbc commit 2942ad5

5 files changed

Lines changed: 166 additions & 1 deletion

File tree

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
$schema: http://json-schema.org/draft-07/schema#
2+
title: EXPRESS Mapping Changes
3+
description: Records modifications to EXPRESS schema mappings across editions
4+
type: object
5+
required:
6+
- schema
7+
- editions
8+
properties:
9+
schema:
10+
type: string
11+
description: Name of the EXPRESS schema
12+
editions:
13+
type: array
14+
description: Array of edition changes
15+
items:
16+
$ref: '#/definitions/edition_change'
17+
definitions:
18+
edition_change:
19+
type: object
20+
description: Changes made to the mapping specification in a specific edition
21+
required:
22+
- version
23+
properties:
24+
version:
25+
type: string
26+
description: Version number for this change edition
27+
pattern: '^[1-9][0-9]*$'
28+
description:
29+
type: string
30+
description: >-
31+
Multi-line string describing the changes made in this edition.
32+
Provides comprehensive overview of what changed and why.
33+
mappings:
34+
type: array
35+
description: Array of mapping changes
36+
items:
37+
$ref: '#/definitions/mapping_change'
38+
mapping_change:
39+
type: object
40+
description: Represents a specific element whose mapping has changed
41+
properties:
42+
name:
43+
type: string
44+
description: Name of the EXPRESS construct whose mapping changed
45+
description:
46+
type: string
47+
description: Description of the mapping change
Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
$schema: http://json-schema.org/draft-07/schema#
2+
title: EXPRESS Schema Changes
3+
description: Records modifications to EXPRESS schema structure across editions
4+
type: object
5+
required:
6+
- schema
7+
- editions
8+
properties:
9+
schema:
10+
type: string
11+
description: Name of the EXPRESS schema
12+
editions:
13+
type: array
14+
description: Array of edition changes
15+
items:
16+
$ref: '#/definitions/edition_change'
17+
definitions:
18+
edition_change:
19+
type: object
20+
description: Changes made to the schema in a specific edition
21+
required:
22+
- version
23+
properties:
24+
version:
25+
type: string
26+
description: Version number for this change edition
27+
pattern: '^[1-9][0-9]*$'
28+
description:
29+
type: string
30+
description: >-
31+
Multi-line string describing the changes made in this edition.
32+
Provides comprehensive overview of what changed and why.
33+
additions:
34+
type: array
35+
description: Array of added elements
36+
items:
37+
$ref: '#/definitions/item_change'
38+
modifications:
39+
type: array
40+
description: Array of modified elements
41+
items:
42+
$ref: '#/definitions/item_change'
43+
removals:
44+
type: array
45+
description: Array of removed elements
46+
items:
47+
$ref: '#/definitions/item_change'
48+
item_change:
49+
type: object
50+
description: Represents a specific schema element change
51+
required:
52+
- type
53+
- name
54+
properties:
55+
type:
56+
type: string
57+
description: Type of the EXPRESS construct
58+
enum:
59+
- ENTITY
60+
- TYPE
61+
- FUNCTION
62+
- RULE
63+
- PROCEDURE
64+
- CONSTANT
65+
- REFERENCE_FROM
66+
- USE_FROM
67+
name:
68+
type: string
69+
description: Name of the EXPRESS construct
70+
description:
71+
type: array
72+
description: >-
73+
Array of strings describing the change. Each string represents
74+
a description for a single change in the named target.
75+
items:
76+
type: string
77+
interfaced_items:
78+
type: array
79+
description: >-
80+
For USE_FROM or REFERENCE_FROM, list of specific items referenced
81+
or used. Not needed when in deletions.
82+
items:
83+
type: string

sources/express-changes/sections/05-schema-change.adoc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11

2+
[[schema-change]]
23
== Schema change
34

45
=== General

sources/express-changes/sections/06-mapping-change.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
[[mapping-change]]
12
== Mapping change
23

34
=== General
@@ -94,4 +95,3 @@ editions:
9495
description: Mapping specifications updated.
9596
----
9697
====
97-
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
[appendix,obligation=informative]
2+
== Schemas
3+
4+
=== General
5+
6+
This annex provides the JSON Schema definitions for the EXPRESS Changes YAML
7+
formats defined in this document.
8+
9+
These schemas can be used to validate EXPRESS Changes YAML files and to
10+
generate documentation or tooling for working with EXPRESS change records.
11+
12+
=== Schema change schema
13+
14+
The schema change schema defines the structure for recording modifications to
15+
EXPRESS schema structure across editions, as described in <<schema-change>>.
16+
17+
The schema is defined in JSON Schema format (draft-07).
18+
19+
[source,yaml]
20+
----
21+
include::../schemas/schema_changes.yaml[]
22+
----
23+
24+
=== Mapping change schema
25+
26+
The mapping change schema defines the structure for recording modifications to
27+
EXPRESS schema mappings across editions, as described in <<mapping-change>>.
28+
29+
The schema is defined in JSON Schema format (draft-07).
30+
31+
[source,yaml]
32+
----
33+
include::../schemas/mapping_changes.yaml[]
34+
----

0 commit comments

Comments
 (0)