Validating extra-schema constraints (requirements) over JSON (JSONatron) under XSLT-M4 Metaschema #726
Labels
enhancement
Scope: CI/CD
Enhancements to the project's Continuous Integration and Continuous Delivery pipeline.
Scope: Metaschema
Issues targeted at the metaschema pipeline
Scope: Modeling
Issues targeted at development of OSCAL formats
User Story
User Story:
One feature is still not implemented in the new Metaschema toolkit, namely the capability to generate a Schematron that will function to enforce constraints declared in the Metaschema, over JSON data.
An XSLT exists that can produce this Schematron to work over XML conformant to a given metaschema. Other logic exists that will perform the path mapping from such a Schematron, to an alternative version that should work equivalently over equivalent JSON. Applying this logic to the XSLT operative over the XML, its logical equivalent can be produced programmatically.
This is experimental, has not been tested, and may (in testing) expose small glitches or anomalies between the way XML and JSON are addressed, which require resolution or workarounds.
On the other hand, demonstrating this capability will be unreal, especially with a live example illustrating meaningful constraints.
Goals:
Complete and demonstrate functionality of enforcing Metaschema constraints over JSON.
The goal of #725 (docs revamp), including documentation of constraints, is not a goal or dependency for this Issue, although documenting the constraints is key to demonstrating them.
Helping to make error messages as clear as possible to work operationally (in either/both XML or JSON, with any necessary adjustments) is a goal, as this is part of JSONatron functionality.
Dependencies:
This issue is also tracked here: usnistgov/metaschema-xslt#12
Part of this work entails copying or contriving a Schematron shell that can consume JSON and put it through a transformation pipeline, delivering SVRL. @david-waltermire-nist has one of these.
Acceptance Criteria
The text was updated successfully, but these errors were encountered: