The following terminology is used in this specification:
An assembly is defined as follows:
An assembly does not have an associated value.
An assembly may reference or directly define zero or more flags. Flag instances associated with an assembly definition typically provide additional metadata used to identify or characterize the object represented by the assembly.
A data model, abbreviated as DM, is defined as follows:
As described by RFC 3444), a data model is defined at a lower level of abstraction than the information model it represents, and includes many details.
- Intended for implementors
- Include protocol-specific constructs.
In Metaschema, the format-specific schema (i.e., XML or JSON Schema) is generated within the Metaschema architecture from a Metaschema module. By defining data models appropriate and tuned for each format, these generated schemas can be used to validate that data is conformant to the associated format, and thus conformant to the information model defined by a given Metaschema module.
An information domain is defined as follows:
A flag is defined as follows:
A flag is a pairing of a name and a value.
The flag’s value is strongly typed using one of the built in simple data types.
A field is defined as follows:
A field is typically used to provide supporting information for a containing assembly.
A field definition is a type of definition within a given Metaschema module used to represent the implementation of a named complex information element with an associated primitive or markup typed value, and zero or more flags as a field.
An information element is defined as follows:
An information model, abbreviated as IM, is defined as follows:
As described by RFC 3444), an IM describes information elements at a conceptual level, independent of any specific implementations or protocols used to transport the data.
- Level of abstraction depends on the modeling needs of the designers
- Define relationships between managed objects
- Should hide all protocol or implementation details, allowing for different implementations
A Metaschema module is defined as follows:
A Metaschema module is composed of flag, field, and assembly definitions.
- Flag: A simple named data object with an associated scalar value. A simple name / value pair. A flag is used to represent a leaf information element.
- Field: A complex named data object with an associated scalar or markup typed value and zero or more flags. A field is used to represent an edge information element.
- Assembly: A complex named data object, with no value, zero or more flags, and a complex model consisting of a combination of child fields and assemblies. An assembly is used to represent a composite information element.
A Metaschema module can be used as the basis for producing schema files, content conversion utilities, documentation, parsing code, and other artifacts that can be used in support of handling data aligned with an information model.