### The uuid Attribute

The uuid attribute specifies the Universal Unique Identifier (UUID) that is assigned to an interface. The uuid attribute takes the form:

uuid (uuid_string)

A uuid_string is the string representation of a UUID. This string is typically generated as part of a skeletal interface definition by the utility uuidgen. A uuid_string contains one group of 8 hexadecimal digits, three groups of 4 hexadecimal digits, and one group of 12 hexadecimal digits, with hyphens separating the groups, as in the following example:

01234567-89ab-cdef-0123-456789abcdef

A new UUID should be generated for any new interface. If several versions of one interface exist, all versions should have the same interface UUID but different version numbers. A client and a server cannot communicate unless the interface imported by the client and the interface exported by the server have the same UUID. The client and server stubs in an application must be generated from the same interface definition or from interface definitions with identical uuid attributes.

Any remote interface must have the uuid attribute. An interface must have either the uuid attribute or the local attribute, but cannot have both.

The uuid attribute can appear at most once in an interface.

The following example illustrates use of the uuid attribute:

uuid(4ca7b4dc-d000-0d00-0218-cb0123ed9876)

###