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 |