1. The names of the variables accessible at a particular point in the text of a program. See block-structured languages.
2. A named group to which identifiers can be assigned. Namespaces are widely used to prevent clashes between multiple identifiers with the same name, especially in programs or data derived from several sources. For example, assume an XML schema defines an element called ‘object’, but a document using that schema also uses another schema that contains another definition of element ‘object’. XML resolves the problem by treating the two schemas as different namespaces, and documents using them must qualify their references to elements etc. by prepending the appropriate namespace label. One namespace may be designated the default namespace, and unqualified names are assumed to refer to it. Similar facilities are provided in modern programming languages, for example, C++ and Java.