Learn about properties, types, augmentations, and other building blocks used to construct the model.
Click here for a high-level summary of each of the major concepts.
The concepts below have NIEM-specific representations in XML and JSON. Each section has pages that demonstrate how to define these concepts in a schema and how sample data would appear in an instance. For a basic introduction to XML or JSON, there are many resources available online, including the W3 Schools XML Tutorial and XML Schema Tutorial, and the json-schema.org tutorial Understanding JSON Schema.
Fundamentally, a NIEM release consists of a set of namespaces, each of which define properties and types (referred to more generally as components). An IEPD reuses components from a release that meet its requirements, and creates new properties and types in local namespaces as needed. These namespaces, properties, and types are basic building blocks of NIEM.
Learn about namespaces in NIEM and see schema examples and templates with header information at the XML and JSON links below.
|Namespaces||A namespace is a collection of properties and types, managed by a common authoritative source.||Tips||XML||JSON|
A property represents a concept, idea, or thing.
|Elements||An element represents a concept. In an instance, it acts as a container that may carry either a simple value or an object, and optionally attributes.||Tips||XML||JSON|
|Abstract Elements||An abstract element is an element defined as a placeholder in a schema that must be replaced with an appropriate substitution in an instance.||Tips||XML||JSON|
|Substitutable Elements||A substitutable element is one that can replace another element in an instance.||Tips||XML||JSON|
|Attributes||An attribute is a property that may carry a simple value only.||Tips||XML||JSON|
A type represents a data structure that defines a set of allowable values.
|Complex Types with Complex Content||A complex type with complex content (CCC) is a structure that represents an object and may contain elements and attributes.||Tips||XML||JSON|
|Complex Types with Simple Content||A complex type with simple content (CSC) is a structure that represents a simple value and that may optionally contain attributes.||Tips||XML||JSON|
|Simple Types||A simple type is a structure that represents a simple value only.||Tips||XML||JSON|
Facets let you constrain the allowable values for a string, number, date, or other simple type. Codes (enumerations) are the most commonly used facet in NIEM. Other facets include patterns, length, and maxExclusive.
|Codes / Facets||A facet is a constraint on a simple type that limits the set of allowable values.||Tips||XML||JSON|
In addition to the basic concepts described above, NIEM defines or uses additional concepts to reflect its conceptual model, improve reusability, and support well-defined information exchanges. These topics are defined by the NIEM Naming and Design Rules (NDR).
|Adapters||An adapter is a mechanism to use components from a non-conformant external standard within a NIEM-conformant namespace.||Tips||XML||JSON|
|Associations||An association is a complex relationship between objects, with optional additional characteristics.||Tips||XML||JSON|
|Augmentation Points||An augmentation point is a special substitution group to allow for later replacement by additional content from other namespaces.||Tips||XML||JSON|
|Augmentation Element||An augmentation element is additional content that replaces an augmentation point defined in another namespace.||Tips||
|Local Terminology||Local terminology is a word, phrase, abbreviation, acronym, jargon, or other string of characters specially documented in a namespace because no definition or literal exists in a standard dictionary.||Tips||XML||JSON|
|Metadata||Metadata is a set of data that describes characteristics of other data.||Tips||XML||JSON|
|References||A reference is used to link to content defined elsewhere.||Tips||XML||JSON|
|Roles||A role is a function or responsibility of someone or something.||Tips||XML||JSON|
|Representations||The representation pattern is a mechanism to support multiple representations of a concept, along with additional properties.||Tips||XML||JSON|