Object’s data is organized into attributes – that are named values, so for example a image object can have a ‘Name’ attribute specifying the image name, a ‘Width’ attribute specifying the width of the image (in pixel or in another measurement) and so on.
Names
Attribute names are case-sensitive: ‘Width’ and ‘width’ are two different attributes. Note though that it is not possible to have two attributes of the same object whose names differ only by case, e.g. it is not possible to have both the attributes ‘Width’ and ‘width’ defined for the same object.
Restrictions
Certain restrictions apply to the attribute names: they must start with a letter, they must contain only letters, digits and the ‘_’ (underscore) characters and they cannot exceed a maximum length. This maximum length is in most cases 26 characters, but it can be quite lower for attributes whose value is stored in an auxiliary database table.
Types
Each attribute has a type, so to continue the example the ‘Name’ attribute will be a string (sequence of characters) with a certain maximum length – e.g. 80 characters, and possibly other restrictions – e.g. it cannot be empty.
Referencing other objects
Some attribute can have values referencing other objects in the database, e.g. a page can have a ‘Texts’ attribute that list all the text appearing in the page – that in turn are other objects in the database. This is called a ‘multi reference’ attribute type.
Compulsory or optional
Attributes can be compulsory or optional, and they can have default values. It is also possible to define attributes whose value is computed automatically by the system-
See also