Previous Next


                                         875
SECTION 10.6                                                         Logical Structure



Each attribute object attached to a structure element may have an associated revi-
sion number. The revision number is stored in the array that associates the
attribute object with the structure element:

• Each attribute object in a structure element’s A array is represented by a pair of
  array elements, the first containing the attribute object itself and the second
  containing the integer revision number associated with it in this structure
  element.
• The structure element’s C array contains a pair of elements for each attribute
  class, the first containing the class name and the second containing the associ-
  ated revision number.

The revision numbers are optional in both the A and C arrays. An attribute object
or class name that is not followed by an integer array element is understood to
have a revision number of 0.

Note: The revision number is not stored directly in the attribute object because a
single attribute object may be associated with more than one structure element
(whose revision numbers may differ).

When an attribute object is created or modified, its revision number is set to the
current value of the structure element’s R entry. By comparing the attribute ob-
ject’s revision number with that of the structure element, an application can de-
termine whether the contents of the attribute object are still current or whether
they have been outdated by more recent changes in the underlying structure ele-
ment.

Note: Changes in an attribute object do not change the revision number of the asso-
ciated structure element, which changes only when the structure element itself or
any of its content items is modified.

Occasionally, an application may make extensive changes to a structure element
that are likely to invalidate all previous attribute information associated with it. In
this case, instead of incrementing the structure element’s revision number, the ap-
plication may choose to delete all unknown attribute objects from its A and C ar-
rays. These two actions are mutually exclusive: the application should either
increment the structure element’s revision number or remove its attribute objects,
but not both. Note that any application creating attribute objects must be pre-
pared for the possibility that they may be deleted at any time by another applica-
tion.

Previous Next