How are "Associations" defined in the National Information Exchange Model (NIEM)?

The definition of an association is composed of several parts:

1. An element that identifies the specific semantics of the association.

For each semantically distinct association, we define an element. Each element will have annotations indicating the specific meaning of the association. Such documentation is not shown in this document, but follows the guidelines established for GJXDM 3.0. The syntax is standard XML Schema. For example,
here is the definition for a parent-child element:


We may wish to define a more-specific type of parent-child association. For example, an adoptive parent-child association:


If we wanted to make the type specific to an adoptive parent-child situation, then we define a new type, instead of reusing the general parent-child type.

2. A type for the association. The type may be have precise semantics, or may be a more generally defined type.

The definition of types for associations is done as needed, depending on the content of the types. We do not, as a rule, define a new type for each use or semantic definition of an association. Instead, we define them as necessary, to accommodate the content required. Here is an example definition for a type for the parent-child association:

<xs:complexType name="ParentChildAssociationType">
      <xs:extension base="u:AssociationType">
            <xs:element ref="this:ParentRef" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element ref="this:ChildRef" minOccurs="0" maxOccurs="unbounded"/>

The type definition has several parts: