Model Concepts

Learn about properties, types, augmentations, and other building blocks used to construct the model.

Click here for a one-page 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.

The Basics

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.

Namespaces

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

Properties

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
Attributes An attribute is a property that may carry a simple value only. Tips XML JSON

See the pages under the Modeling Properties section for guidance on Names, Definitions, and Representation terms + Standard Opening Phrases.

Types

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

Substitution Groups

Substitution groups are typically used in NIEM to support alternate representations of a property (like multiple sources for country codes or multiple representations for a date format) and to support augmentations (described later in the “NIEM-Specific Techniques” section).

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

Code Sets and other Facets

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

Other

References A reference is used to link to content defined elsewhere. Tips XML JSON

NIEM-Specific Techniques

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 XML1
XML2
JSON
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
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