What is an “external adapter” type within the National Information Exchange Model (NIEM)?

External components are encapsulated in NIEM-conformant components. This introduces the concept of “external adapter” types. An external adapter type is a NIEM conformant XML Schema complex type that wraps a set of external content.

 

These adapter types and container elements are XML Schema components, and so are defined within the namespace of the schema currently being defined.

This article specifies two constructs, which contain external content. The first is the external adapter type. This type is a NIEM-conformant type that contains attributes and elements from external namespaces. The second is the external container element. The container element is used when an external namespace provides top-level types for use, but does not provide appropriate top-level elements. In such a case, create a container element of the externally-provided type. Container elements are defined in NIEM conformant namespaces, are named differently than regular NIEM-conformant elements, and are used in a more restricted way.

Consistent with the fundamentals of NIEM, XML elements are used for semantics, and

XML Schema types are used to contain necessary structures. Specific rules for definition of adapter components will take this approach, focusing on encapsulating external structures as NIEM-conformant types, within strongly-defined elements with specific semantics.

If an external type needs to be extended for use, such extension should be done outside a NIEM-conformant namespace. These structures are intended to encapsulate external content. They are not indented to introduce extensions and modifications to external content into NIEM-conformant namespaces. If an application schema needs to be constructed to conform to an external standard, the schema should be created in a user defined namespace, outside the NIEM-conformant namespaces. Then, those external components should be referenced by NIEM-conformant external adapter types and external container elements.