A name-to-object association is called a Binding.
struct Binding { CosNaming::Name binding_name; CosNaming::BindingType binding_type; };
typedef sequence < CosNaming::Binding > BindingList;
Specifies whether the given binding is for a object (that is not a naming context) or for a naming context.
enum BindingType { nobject, ncontext };
typedef string Istring;
typedef sequence < CosNaming::NameComponent > Name;
Many of the operations defined on a naming context take names as parameters. Names have structure. A name is an ordered sequence of components.
struct NameComponent { CosNaming::Istring id; CosNaming::Istring kind; };
A name with a single component is called a simple name; a name with multiple components is called a compound name. Each component except the last is used to name a context; the last component denotes the bound object.
A name component consists of two attributes: the identifier attribute and the kind attribute. Both the identifier attribute and the kind attribute are represented as IDL strings. The kind attribute adds descriptive power to names in a syntax-independent way. Examples of the value of the kind attribute include c_source, object_code, executable, postscript, or " ".