A Namespace contains a hierarchically organized tree of information.
Objects in the namespace are generally referred to as Nodes. Nodes may have a parent, children, content and meta-data. They can also be versioned (so that multiple revisions of the object's content and metadata are stored) and locked (so that only specific principals are allowed to read or modify the object). In addition, access control information can be assigned to every node.
Nodes in the hierarchy are identified by their URI (Unique Resource Identifier). A URI is analogous to a file path in traditional file systems. For example:
/users/john/documents/my_document.txt
As you can see, the slash ("/") is used to separate nodes in the path.
Client applications can not access a Namespace object directly. Instead, access must be requested from the {@link Domain Domain}, which will hand out a proxy object ( {@link NamespaceAccessToken NamespaceAccessToken}) that enables the client application to access the namespace using the helpers.
Namespaces are necessarily self-contained. What this means is that a namespace cannot reference or contain links to another namespace. A namespace is typically assigned per-application, which effectively isolates it's data and security context from those of other applications.
@author
Remy Maucherat
@author Dirk Verbeeck
@version $Revision: 1.56.2.2 $