Create a role type for a non-exclusive function of an object only if there are role-specific properties to add. Otherwise, simply reuse an existing type, like nc:PersonType or nc:ItemType.
A role type should extend “structures:ObjectType”.
A role type will contain references to one or more RoleOf elements. It is not required, but NIEM customarily adds role-of elements first to a role type, and then the remaining properties.
NIEM already defines several role-of properties, including…
| Role-of Element | Type |
|---|---|
| nc:RoleOfPerson | nc:PersonType |
| nc:RoleOfOrganization | nc:OrganizationType |
| nc:RoleOfItem | nc:ItemType |
| nc:RoleOfFacility | nc:FacilityType |
| j:RoleOfBinary | nc:BinaryType |
| j:RoleOfBiometric | biom:BiometricDataType |
| mo:RoleOfUnit | mo:UnitType |
Reuse an existing role-of property when creating a custom role type if it meets your requirements; otherwise, you may define your own.
The name of a role-of property must begin with “RoleOf”.
The type of a role-of property should be the type that represents the object of the role.
If the role is a function of a person, the type of the role-of element should be “nc:PersonType”.
A role-of element must be substitutable for element “nc:RoleOfAbstract”.
| Rule | Applicability | Title |
|---|---|---|
| NDR 10-3 | REF, EXT | RoleOf element type is an object type |
| NDR 10-4 | REF, EXT | Only object type has RoleOf element |
| NDR 10-5 | REF, EXT, INS | RoleOf elements indicate the base types of a role type |
| NDR 10-6 | INS | Instance of RoleOf element indicates a role object |