Skip to content

usnistgov/metaschema

Repository files navigation

Metaschema

Metaschema provides a common, format-agnostic modeling framework supporting schema, code, and documentation generation all in one.

Current modeling technologies (i.e. XML Schema, JSON Schema, Schematron) are:

  • Uneven in their modeling expressiveness and validation capability;
  • Unable to express a single model that applies to all supported formats;
  • Bound to specific formats (i.e., XML, JSON, YAML); and
  • Time-consuming and labor-intensive when maintaining multiple format-specific models.

In addition to these basic challenges, there is a need to:

  • Express and validate cross-instance relationships;
  • Generate parsing code in multiple programming languages;
  • Support lossless content conversion between all supported formats; and
  • Maintain format-specific documentation.

To address the challenges above, Metaschema supports automated:

  • Code and documentation generation;
  • Robust rules-based, format agnostic validation capabilities; and
  • Content conversion between supported formats (i.e., XML, JSON, YAML).

Metaschema achieves this with:

  • A modeling abstraction that unifies the modeling and validation capabilities of existing schema and validation technologies.
  • Tools that automatically generate code, schemas, documentation, and format-appropriate content converters from Metaschema-based models.

Resources

Related work

  • A Java implementation provides Metaschema parsing, data instance validation and parsing, content conversion, Java code generation, and XSD and JSON schema generation capabilities.
  • An XSLT implementation provides data instance validation, content conversion, documentation generation, and XSD and JSON schema generation capabilities.

Contact us

Maintainer: David Waltermire - @david-waltermire, NIST Information Technology Labratory, Computer Security Division, Security Components and Mechanisms Group

Email us: metaschema@nist.gov

Chat with us: Gitter OSCAL/metaschema