Skip to content


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?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


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.


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:

Chat with us: Gitter OSCAL/metaschema