What is the difference between "Content Elements" and "Reference Elements" in the National Information Exchange Model (NIEM)?
Content elements enclose data. The following is an example:
In this example, there is a person object. The person contains an element called PersonName. The PersonName element contains an element called PersonFullName. The PersonFullName element contains a string Adam Smith. The PersonFullName element is obviously a content-containing element. It has
the person’s name (a literal string) as its content.
The PersonName is also a content-containing element, as its content represents the person name, as a structured object. It contains the element PersonFullName, and could contain additional elements.
Reference elements do not enclose content. Instead, they reference content as external objects:
In the above example, the property that was seized as part of the incident is referenced out to another object, an XML object in the same XML instance, with the identifier C.
White microwave oven
The object that has the identifier C is an instance of Property, specifically representing a microwave oven. The reasons for representing the microwave oven
outside of the incident should be quite evident: it is its own object, independent of the incident. It has its own life cycle. If the incident did not exist, the microwave oven would still exist.
The seized property is an element of the incident because it is a fixed part of the incident. The incident involved the seizing of the property, and that will not change. However, the incident should be a reference element, as the property has its own life cycle, outside of the incident.