An attribute is a single piece of information that is stored in the NDS database about an object. The attributes assigned to an object class can be mandatory or optional:
If an attribute is mandatory, a value must be assigned to the attribute before an instance of the object can be created.
If an attribute is optional, a value does not need to be assigned to create an instance of the object. The only exception is an optional naming attribute. If the optional naming attribute is the only attribute used for naming the object, this optional attribute becomes a mandatory attribute.
A class inherits all the mandatory and optional attributes defined for its super classes (see Novell Object Class Extensions). There is no way to block the inheritance.
A client cannot associate an attribute with an object unless the attribute is listed among the mandatory or optional attributes of the object’s expanded class definition. If a client must associate an attribute with a particular object and the attribute is not specified by the object class, the client must extend the schema by either
Adding the new attribute to the class as an optional attribute
Defining a new class that inherits from the original class and adds the new attribute as an optional attribute