Skip to content

usnistgov/metaschema

main
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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, NIST Information Technology Labratory, Computer Security Division, Security Components and Mechanisms Group

Email us: metaschema@nist.gov

Chat with us: Gitter OSCAL/metaschema