What are examples of external, non-NIEM standards and how are adapter components used within NIEM?

The term “External Component” is used for a schema component from a namespace that does not follow the rules for NIEM conformance.

Examples of external, non-NIEM standards include:


·        GML: Geography Markup Language. GML is a prime candidate for content that may be included in NIEM structures.


·        XHTML: Extensible Hypertext Markup Language. This language would likely be used for exchanging simple structured text.


·        SAML: Security Assertion Markup Language. This is a likely language into which NIEM content will be embedded. Some SAML assertions will likely need to contain content defined by NIEM.


There are numerous goals in defining and using adapter components:


  1. Ensure that content may be carried as defined by external standards, without modification. It would be bad to modify external content standards to make them “fit” NIEM. Instead, we should carry external content exactly as would be expected by external tools.
  2. Allow modeling efforts to define the granularity of use of external content as needed.


Different groups require different levels of resolution into external standards. For example, one group may exchange a large block representing the geography of a large urban area, while another group may only exchange a single geographic point.

Both may be using the same external standard, but will need to use different parts, with different sizes, and different semantics.


  1. Ensure specific modeling efforts (e.g. NIEM core, domains, or IEPDs) are independent of a centralized process for use of external components. Developers should be able to immediately utilize standards required for their area of expertise.
  2. Provide points for harmonization. NIEM-conformant components that use external standards may be integrated into the core of NIEM. By using narrowly defined components with specific semantics, common uses that meet broad requirements may be identified and pulled up into the core of NIEM.
  3. Reduce coupling between NIEM schemas and external schemas. This method ensures that any given implementation uses external schemas through specific known points of access, without excessive dependence on deeply nested external components