Metaschema Syntax

The following is an approximate outline of the Metaschema module syntax. Each element and attribute links to the specific specification section describing the element. Attribute value choices are indicated where possible, with default values highlighted.

<-- ############# -->
<-- Module Header -->
<-- ############# -->
<METASCHEMA xmlns="http://csrc.nist.gov/ns/oscal/metaschema/1.0"
abstract="yes|no"> (default: no)
<schema-name>string</schema-name>
<schema-version>string</schema-version>
<short-name>string</short-name>
<namespace>uri</namespace>
<json-base-uri>uri</json-base-uri>
<-- ############## -->
<-- Module Imports -->
<-- ############## -->
<-- ##################### -->
<-- Top-Level define-flag -->
<-- ##################### -->
as-type="token" (default: string)
scope="global|local"> (default: global)
<formal-name>string</formal-name>
<description>string</description>
<prop name="token" value="token"
namespace="uri"/> (default: http://csrc.nist.gov/ns/oscal/metaschema/1.0)
<use-name>token</use-name>
</define-flag>
<-- ######################### -->
<-- Top-Level define-assembly -->
<-- ######################### -->
scope="global|local"> (default: global)
<formal-name>string</formal-name>
<description>string</description>
<prop name="token" value="token"
namespace="uri"/> (default: http://csrc.nist.gov/ns/oscal/metaschema/1.0)
<use-name>token</use-name>
<root-name>token</root-name>
<json-key flag-ref="token"/>
<-- Flag Instance -->
required="yes|no" (default: no)
<formal-name>string</formal-name>
<description>string</description>
<prop name="token" value="token"
namespace="uri"/> (default: http://csrc.nist.gov/ns/oscal/metaschema/1.0)
<use-name>token</use-name>
</flag>
<-- Inline Flag Definition -->
as-type="token" (default: string)
required="yes|no" (default: no)
<formal-name>string</formal-name>
<description>string</description>
<prop name="token" value="token"
namespace="uri"/> (default: http://csrc.nist.gov/ns/oscal/metaschema/1.0)
</define-flag>
<-- Assembly Instance -->
max-occurs="positive-integer|unbounded" (default: 1)
<formal-name>string</formal-name>
<description>string</description>
<prop name="token" value="token"
namespace="uri"/> (default: http://csrc.nist.gov/ns/oscal/metaschema/1.0)
<use-name>token</use-name>
</assembly>
<-- Field Instance -->
max-occurs="positive-integer|unbounded" (default: 1)
in-xml="WRAPPED|UNWRAPPED" (default: WRAPPED)
<formal-name>string</formal-name>
<description>string</description>
<prop name="token" value="token"
namespace="uri"/> (default: http://csrc.nist.gov/ns/oscal/metaschema/1.0)
<use-name>token</use-name>
</field>
<-- Inline Assembly Definition -->
<-- Inline Field Definition -->
<-- Choice -->
<-- Any -->
<any/>
</model>
</define-assembly>
<-- ###################### -->
<-- Top-Level define-field -->
<-- ###################### -->
as-type="token" (default: string)
collapsible="yes|no" (default: no)
scope="global|local"> (default: global)
<formal-name>string</formal-name>
<description>string</description>
<prop name="token" value="token"
namespace="uri"/> (default: http://csrc.nist.gov/ns/oscal/metaschema/1.0)
<use-name>token</use-name>
<json-key flag-ref="token"/>
<json-value-key>token</json-value-key>
<-- Flag Instance -->
required="yes|no" (default: no)
<formal-name>string</formal-name>
<description>string</description>
<prop name="token" value="token"
namespace="uri"/> (default: http://csrc.nist.gov/ns/oscal/metaschema/1.0)
<use-name>token</use-name>
</flag>
<-- Inline Flag Definition -->
as-type="token" (default: string)
required="yes|no" (default: no)
<formal-name>string</formal-name>
<description>string</description>
<prop name="token" value="token"
namespace="uri"/> (default: http://csrc.nist.gov/ns/oscal/metaschema/1.0)
</define-flag>
</define-field>
</METASCHEMA>