A common way for handling names of objects.
An identifier type must include a Name. It may also include a
NamingSystem, which gives meaning to the name. Since Names and
NamingSystems may change with time, it may also include a
Version, to further refine the meaning of the name. Note that
this three-part structure is based on the ISO Identifier type.
The name of the object being identified.
It may or may not be a unique name, depending on the use of
this type. When used as an "identifier," it should be a unique
name, within the naming system. When used as an "alias,"
the name is not required to be unique.
The naming system under which the
name is defined. For example, if the name is a person's
social security number, the naming system would be SSN,
or some equivalent code which represents that the name
is a social security number. Since naming system may be
a code, there are two attributes (nameRef and systemList),
which may be used to lead an application to a registry,
where meaning can be obtained for the code.
When a naming system is declared, it
may be further qualified by giving a version of the naming
system. This is needed only when a group puts out a new
set of names that are not backward compatible with a
previous list.
A comment about the identifier.
The version of the schema.