# Interface NameSpace

All Known Implementing Classes:
  `DefaultNameSpace`

@UML(identifier="NameSpace", specification=ISO_19103) public interface NameSpace
A domain in which names given by character strings are defined. Every `GenericName` must be valid in a namespace. For a `LocalName`, this means that the name must exist in the current namespace. For a `ScopedName`, this means:

1. The head of a `ScopedName` must be a `LocalName` which is valid in this namespace.
2. The tail must either be:
   - a `LocalName` which is valid in the `NameSpace` associated with the head, or
   - another `ScopedName` with these same constraints on head and tail, applied to the `NameSpace` associated with the head.

Since:
  2.1

- ## Method Summary

  Modifier and Type
  Method
  Description
  `boolean`
  `isGlobal()`
  Indicates whether this namespace is a "top level" namespace.
  `GenericName`
  `name()`
  Represents the identifier of this namespace.

- ## Method Details

  - ### isGlobal

    @UML(identifier="isGlobal", obligation=MANDATORY, specification=ISO_19103) boolean isGlobal()
    Indicates whether this namespace is a "top level" namespace. Global, or top-level namespaces are not contained within another namespace. There is no namespace called "global" or "root" which contains all of the top-level namespaces. Hence, this flag indicates whether the namespace has a parent.
    Returns:
      `true` if this namespace has no parent.

  - ### name

    @UML(identifier="name", obligation=MANDATORY, specification=ISO_19103) GenericName name()
    Represents the identifier of this namespace. If the global attribute is `true`, indicating that this is a top level `NameSpace`, then the name shall be a local name. If `false`, name shall be a fully-qualified name where `name.scope().isGlobal() == true`.
    Returns:
      The identifier of this namespace.