aas-specs icon indicating copy to clipboard operation
aas-specs copied to clipboard

Fix bugs in XSD and SHACL schema files (v3.0.1)

Open s-heppner opened this issue 5 months ago • 0 comments

This fixes two bugs found in schema files:

SHACL

Make SHACL regex patterns follow JSON Schema ones

We included the regex pattern as-is from the input which caused problems with the regex engines as the patterns in the meta-model are written in a Python dialect (and assuming that the regex engine works on UTF-32 characters). However, most regex engines in the wild operating on SHACL (e.g., Java SHACL validators) use UTF-16 to represent the text and do not support some parts of the Python regex dialect. For example, in the input meta-model specification, we omit the minimum bound 0 (e.g., {,4}), which breaks with the Java regex engine beneath the SHACL validator.

Instead, with this patch, we parse the pattern from the specification and re-render it into the form that we also use in JSON Schema. We pick JSON Schema regex dialect as most SHACL validators in the wild can deal with it, in particular those based on Java as a platform. Hence, we decide to serve this user base with priority.

Discovered in aas-core-meta issue 342. Fixed in aas-core-codegen commit e22cc.

XSD

Adapt XML Schema for some schema validators

Previously we did not define aas:environment directly via an xs:element tag, rather only provided it directly as xs:complexType. This created issues with several XML Schema validator engines.

Fix #457.

s-heppner avatar Aug 30 '24 08:08 s-heppner