Support for version upgrade during schema-validation
There is intensive use of $ref to schema fragments, which are incoming as schema-IDs like e.g. "$ref": "osdu:wks:AbstractSpatialLocation:1.0.0". These fragments use semantic versioning as well.
As a consequence, these ids should be validated also during schema-validation:
$ref target versions for patch increments can only refer to higher patch versions - if they refer to a higher minor (or even major version) validation must fail.
Example:
Sl No
Type
Initial Version
New Version
Status
1
Base Schema
osdu:wks:AbstractSpatialLocation:1.0.0
osdu:wks:AbstractSpatialLocation:1.0.1
2
$ref
osdu:wks:AbstractCommonResources:2.1.1
osdu:wks:AbstractCommonResources:2.1.2
valid
3
$ref
osdu:wks:AbstractCommonResources:2.1.1
osdu:wks:AbstractCommonResources:2.2.1
invalid
4
$ref
osdu:wks:AbstractCommonResources:2.1.1
osdu:wks:AbstractCommonResources:2.0.1
invalid
5
$ref
osdu:wks:AbstractCommonResources:2.1.1
osdu:wks:AbstractCommonResources:2.1.0
invalid
6
$ref
osdu:wks:AbstractCommonResources:2.1.1
osdu:wks:AbstractCommonResources:3.1.1
invalid
7
$ref
osdu:wks:AbstractCommonResources:2.1.1
osdu:wks:AbstractCommonResources-Changed:2.1.1
invalid
Similarly $ref target versions for higher minor versions can only refer to higher minor versions - higher major version references must be rejected by the validation.
Example: