NIEM 4.0 Release

NIEM 4.0 is a major release, published June 2017.



  • Added the Agriculture (ag) domain

  • The Children, Youth, and Family Service (cyfs) was merged into the Human Services (hs) domain

  • Added a new structures:uri attribute to support references within and across documents (Linked Data)

  • Added support for dynamic code lists that are identified at run-time via the new type nc:CodeType, as specified by the new NIEM Code Lists specification

  • Added new components to support the international community

  • Introduced a default JSON-LD context file to provide namespace URI abbreviations, similar to the use of namespace prefixes in XML

See the NIEM 4.0 readme for a detailed list of changes.

The following are the NIEM specifications that can be used with this release:

  • NIEM Naming and Design Rules, version 4.0 [published 2017]

    The NIEM Naming and Design Rules specifies the data model XML Schema components and XML data for use with the National Information Exchange Model (NIEM). Learn more...

  • Model Package Description, version 3.0.1 [published 2015]

    The NIEM Information Exchange Package Documentation (IEPD) Specification specifies normative rules and non-normative guidance for building NIEM information exchange messages. It defines IEPD artifacts like subset schemas, extension schemas, and MPD catalogs; and recommends how the package should be structured. Learn more...

  • NIEM JSON Specification, version 4.0 [published 2020]

    The NIEM JSON Specification establishes the technical basis for using JavaScript Object Notation (JSON) as a data format for exchange of information consistent with NIEM-conformant schemas and information exchange package documentations (IEPDs). Learn more...

  • NIEM Conformance Specification, version 3.0 [published 2014]

    The NIEM Conformance Specification introduces the idea of NIEM conformance and provides a general normative definition for its meaning, how it applies, and to what it does and does not apply. It describes the benefits of conformance, and refers to sources of information, tools, and help. Learn more...

  • NIEM Code Lists Specification, version 4.0 [published 2017]

    The Code Lists Specification adds support for new capabilities of NIEM code lists beyond the basic enumeration representations provided by XML and JSON schema. Key features include the definition of codes in CSV or Genericode files, dynamic code lists via run-time binding, and multi-column code table support. Learn more...

  • NIEM Conformance Targets Attribute Specification, version 3.0 [published 2014]

    The Conformance Targets Attribute Specification (CTAS) defines how NIEM XML documents indicate what kind of artifact they are through the use of a conformance targets attribute. Learn more...

  • NIEM High-Level Version Architecture Specification, version 3.0 [published 2015]

    The NIEM High-Level Version Architecture (HLVA) Specification identifies the processes, artifacts, and responsibilities required to produce new releases of the NIEM model. It also establishes a regular release cycle for predictable and manageable NIEM updates. Learn more...

Specification Updates

Naming and Design Rules (NDR) 4.0

The NIEM Naming and Design Rules (NDR) specification was updated from version 3.0 to version 4.0.

Change highlights:

  • Began managing specification in a new NIEM-NDR GitHub repo

  • Eliminated warning rules that always fired

  • Simplified RDF representation

  • Relaxed rules on component naming from MUST to SHOULD

  • Allowed valid ASCII characters in component names: A-Z a-z 0-9 - _ .

  • Added support for the use of the Code Lists specification

  • Added attribute structures:uri to support Linked Data (referencing data from outside the given message)

Change details include…

Updated version from 3.0 to 4.0, affecting:

  • Namespaces: structures, appinfo, NDR functions namespace
  • Conformance target identifiers: REF, EXT

Now managing specification on GitHub ( for:

  • Revisions/updates/errata: posted to the document repository
  • Comments/issues: posted as GitHub issues

NDR Section 2.4.2 - Schematron updates

  • Eliminated warning rules (sch:report) that always fire
  • Added attribute (role="warning") to warning rules
  • Broke apart overly-large rule on standard opening phrases into smaller rules

NDR Section 5 - RDF updates

  • Simplified RDF representation
    • RDF is much simpler than v3, with direct properties instead of reification
    • Allows for more direct JSON representation via JSON-LD
  • Removed RDF representation for metadata types

NDR Section 6 & 8 - XML processing and defaults

  • Improved discussion of infoset augmentation, fixed, and default
  • Allow use of fixed on attribute uses that are required in an instance

NDR Section 10 & 11 - Naming

  • Relaxed rules on component naming from MUST to SHOULD (USMTF)
  • Allow all valid ASCII characters in component names
    • Allowed: “A”-“Z”, “a”-“z”, “0”-“9”, “-“, “_”, “.”

NDR Section 10 & 11 - Codes

  • Allow code elements and code types to be represented by methods other than enumerations
  • Described as correspondence to a list of conceptual entities
  • Relaxed rules for structure/content of code elements and types
  • Relaxed naming rules for code elements and types

NDR Section 12 - Linked data approach

  • Added attribute structures:uri
  • Defined structures:id and structures:ref in terms of structures:uri (Appendix B)
  • Allow properties of objects to be distributed across multiple objects with the same identifier
    • Removed requirement that elements with structures:ref have no properties
  • Major rewrite to section 12.1, 12.2, addressing data’s meaning, identity, and references


  • Grammar, spelling, and narrative improvements
  • Moved content of the Local Terminology namespace (term) into the Application Information namespace (appinfo)
  • Explicitly allow structures namespace to be subset

NIEM Code Lists 4.0

The NIEM Code Lists specification was updated from its original version 1.0 to version 4.0.

Key features of the specification include:

  • Code lists may be managed via XML (Genericode) or spreadsheets/databases (CSV)

  • Code lists may be versioned separately from XML Schema-based vocabularies

  • Code lists may be identified at run time or at schema assembly time

  • Allow for more complex code use cases

Changes include:

  • Removed cli:CodeType from CLI schema. Merged CLI schemas into a single schema that’s conformant to NIEM 3 and NIEM 4.

  • Changed term “code list instance namespace” to “code lists instance namespace”.

  • Renamed term “code list schema appinfo namespace” to “code lists schema appinfo namespace”.

  • Added well-known column “uri”.

Release Stats

The following are statistics for the 4.0 release.

NIEM 4.0 has 14 domains.

Summary Counts

The table below breaks down property, type, and code counts by namespace group.

  • The “Core” group represents a single namespace (NIEM Core).
  • The “Domain” and “Code Set” groups combine the counts from multiple namespaces and are broken out in the subsequent tables.
Group Property Count Type Count Code Count
Core 1588 270 185
Domain 9671 2466 8621
Code Set 5 1084 65468
Total 11264 3820 74274

Domain Counts

The counts in the following table represent the namespaces that make up the “Domain” group in the summary table above.

NS Property Count Type Count Code Count
ag 64 8
biom 1013 586 1318
cbrn 608 147
em 670 278 629
hs 781 256 871
im 457 95 1388
intel 66 17
ip 31 8 3
it 534 91
j 4140 496 193
m 339 47 180
mo 306 132 130
scr 599 255 3731
st 63 50 178

Code Counts

The counts in the following table represent the namespaces that make up the “Code Set” group in the summary table above.

NS Property Count Type Count Code Count
aamva_d20 84 732
ag_codes 62 79
apco 8 206
atf 8 98
can 2 13
cbrncl 131 2435
census 2 3235
cjis 2 24
commodity 8 131
dea 6 482
dod_jcs-pub2.0 2 11
dol 2 840
edxl_rm 4 24
fips_5-2 2 69
have-codes 24 43
hazmat 2 2441
hl7 2 83
iso_3166 8 5698
iso_4217 2 182
iso_639-3 2 8393
itcodes 44 2219
jc3iedm 2 4 364
jp3-52 3 5 117
mmucc 146 700
ncic 180 30317
ndex 240 4288
nga 4 50
nibrs 12 156
nlets 6 20
occs 6 1006
sar 8 76
ucr 46 367
unece 12 151
usda_fsa 4 347
usps 2 62
xCard 2 9