Concepts for data modeling

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

The concepts below have NIEM-specific representations in XML and JSON. Each section has information that demonstrates 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. XML JSON

Properties

A property represents a concept, idea, or thing.

Properties A property represents a concept, idea, or thing. XML JSON
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. 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. XML JSON
Substitutable Elements A substitutable element is one that can replace another element in an instance. XML JSON
Attributes An attribute is a property that may carry a simple value only. XML JSON

See the information in the Property page for guidance on Naming, Definitions, and Representation terms + Definition Standard Opening Phrases.

Types

A type represents a data structure that defines a set of allowable values.

Types A type represents a data structure that defines a set of allowable values. XML JSON
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. 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. XML JSON
Simple Types A simple type is a structure that represents a simple value only. 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. 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. XML JSON
Associations An association is a complex relationship between objects, with optional additional characteristics. XML JSON
Augmentation Points An augmentation point is a special substitution group to allow for later replacement by additional content from other namespaces. XML JSON
Augmentation Element An augmentation element is additional content that replaces an augmentation point defined in another namespace. 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. XML JSON
Metadata Metadata is a set of data that describes characteristics of other data. XML JSON
References A reference is used to link to content defined elsewhere. XML JSON
Roles A role is a function or responsibility of someone or something. XML JSON
Representations The representation pattern is a mechanism to support multiple representations of a concept, along with additional properties. XML JSON