NIEM adopts standard
XML schema constructs and methods, such as roles, associations, and augmentation from industry standards, such as the
World Wide Web Consortium (W3C)
XML Schema language.
NIEM schemas The NIEM reference schemas are a set of interrelated schemas that define NIEM data components. Each schema defines its own target namespace. Schemas in the reference set may import one another by namespace in order to use (or reuse) components they define. In general, domain reference schemas import schemas from the Core. The NIEM reference schema set represents the full set of data components in NIEM. The following kinds of XML schemas are associated with the NIEM architecture: •
NIEM reference schemas: Schemas containing content created or approved by the NIEM steering committees are periodically released in schema distributions. •
Subset Schema: a NIEM-conformant schema, containing only the parts of the reference schemas needed to support a particular exchange. •
Support schemas: NIEM includes three special schemas, appinfo, structures and proxy, for annotating and structuring NIEM-conformant schemas. •
Extension Schema: a NIEM-conformant schema which adds domain- or application-specific content to the base NIEM model. •
Exchange Schema: a NIEM-conformant schema which specifies a document in a particular exchange. •
Constraint Schema: a NIEM-conformant schema which adds additional constraints to NIEM-conformant instances, but which is assumed to validate in concert with existing NIEM-conformant or subset schemas. A constraint schema need not validate constraints that are applied by other schemas. •
Codelist Schemas: a NIEM-conformant schema which provides a list of acceptable values that a data element will be constrained to. The only mandatory schemas for validation are the NIEM reference schemas or a correct subset, however the IEPD specification requires that an IEPD include an exchange schema (along with the reference schemas or subsets) to be considered a complete IEPD. The NIEM schemas may import additional schemas, such as code table schemas, as needed. An optional extension schema may be used to add extended types and properties for components not contained in NIEM, but which are needed for the exchange.
NIEM Naming and Design Rules (NDR) The naming and design rules for NIEM are documented in the NIEM NDR, which specifies the data model, XML components, and XML data for use with NIEM and provides a basis for
NIEM conformance. The current version is NDR v5.0, which was released on December 18, 2020. NIEM is based on several concepts from the
International Organization for Standardization (ISO) 11179, which provides guidelines for the naming and definition of data elements, as well as information about the metadata captured about data elements. Part 5 of the ISO 11179 standard establishes a methodology for naming items in data dictionaries. The ISO 11179-based NIEM NDR naming convention uses object class, property, and representation terms to constitute a multiple-part name as shown in the figure below:
Object Class Term: Represents the object to which the property is applicable. In NIEM, we interpret that object to be the real-world object. (An object class refers to a group of objects that share the same attributes, operations, methods, relationships, and semantics.)
Property Term: Identifies the property that the data element represents (e.g., last name, expiration date, height, total).
Representation Term: Describes the form of the data represented. These terms have been derived from
ISO 11179 representation terms, and include Amount, Code, Date, Time, Indicator, Measure, Name, Numeric, Percent, Picture, Quantity, Rate, and Time.
Qualifier Term: The object class and property terms can have qualifiers; i.e., a word or words that help define and differentiate the element name.
NIEM modeling and schema concepts The NIEM technical modeling and schema concepts and mechanisms which support building new data components that meet specific requirements and reusing existing NIEM data components are briefly described below. More detail can be found in the NIEM User Guide and the NIEM NDR.
Data elements, classes, types, and properties The NIEM data model uses concepts originating from
object-oriented programming (OOP). OOP defines a class as a specific entity in the data model, which may represent a real-world object but may also represent any
conceptual object, such as relationships and messages. An object's properties are said to describe the object. When the NIEM XML Schemas are generated from the NIEM data model, data model classes are represented as XML Schema types, and data model properties are represented as XML elements and attributes.
Extension techniques There are two approaches for extending the NIEM data model for use in information exchange schemas and documents. • Creating new NIEM types to represent new concepts • Adding new data to existing NIEM types, to extend existing concepts
Specialization with inheritance Specialization is used when a base object class (type) contains or can be subcategorized into a more specific subclass. When this can be done, the subclass derived from the base class inherits the properties of the more general base or parent class. This mechanism is used to share or reuse properties between the general data component and its specialization. For example, a vehicle type (or class) is identified as a data component with properties of vehicle identification number (VIN), make, and model. Truck type (or class) is a specialization of vehicle and thus inherits the vehicle's properties but also has its own characteristic properties, such as truck bed length. Specialization is time independent and is generally used only when the base class and subclass always exist.
Roles A role is a special type which represents a particular function, purpose, context, or activity for an entity. Roles are generally time dependent and, therefore, temporary. A new type can be created for a role when the role has specific data associated with it and its own life cycle. A role type has a property, RoleOf, which indicates what object is assuming this role. A single entity may assume multiple roles. For example, many different entities may assume the role of a weapon. Therefore, if a vehicle is used as a weapon (to attempt to injure or kill a person), then an instance of WeaponType would contain the property, RoleOf, which references the vehicle instance used as the weapon. The WeaponType (the role) might also contain properties that describe the persons and activities involved, dates and times of involvement, and how the entity was used as a weapon.
Associations An association type is an object that represents a relationship between data components. For example, two PersonType instances, Abigail and Bob, could be referenced by a MarriageAssociationType to represent the fact they are married. The MarriageAssociationType could contain its own properties, such as date of marriage, number of children, date of divorce, death of one spouse, etc.
Augmentation Augmentation of a NIEM data type allows the addition of domain- or model-specific information to the concept embodied in the NIEM type, without creating a new NIEM type. It would be impractical and unwieldy to include all possible domain model-specific properties in NIEM Core schemas for general use. Instead, domain modelers need to be able define data for their use, independently from common definitions. Furthermore, that data needs to be applicable to the NIEM data object itself, and reusable in multiple exchanges. The augmentation approach built into NIEM utilizes XML Schema constructs to reuse the existing XML schema representations for the data model, by allowing them to be augmented with the new information.
Element substitution NIEM uses several techniques from XML Schema to allow as-needed element substitutions for pre-existing NIEM properties and into pre-existing NIEM types. Element substitution techniques allow the substitution of new XML Schema elements, representing derived NIEM properties that can be used where the parent properties are expected. There are three XML Schema techniques that support the NIEM use of element substitutions: • use of substitution groups • creation of abstract, type-less elements, and • use of abstract elements in reference schemas.
Adapting external standards In addition to adding new NIEM types and properties to NIEM, it is possible to adapt existing external (non-NIEM) namespaces for use in the NIEM framework. This allows the use of external standards within NIEM IEPDs, without requiring that the external standards themselves be NIEM-conformant. The intent here is to allow use of external standard components exactly as they were defined.
Metadata Metadata, or data about data, defines information that supports the actual content of XML instances. The metadata feature provides a mechanism for attaching structured properties that describe the pedigree or source (when reported, who reported, how reliable, etc.) of instance data to any data component of the model (type or object, property, association, role, or augmentation) in any namespace. It allows sets of metadata to be extended with additional properties for local requirements and enables metadata properties to be repeated.
EIEM dictionary concepts NIEM has introduced the concept of Enterprise Information Exchange Model (EIEM) dictionaries to allow NIEM implementers to position local collections of components specific to their own enterprise. Typically these may be drawn from an Enterprise Data Model (EDM) and then exported and refactored as XML components that conform to the NIEM NDR. See Tools section below for information on creating EIEM dictionaries. ==Tools==