Previous Next
874
CHAPTER 10 Document Interchange
attribute objects is defined by a dictionary called the class map, kept in the
ClassMap entry of the structure tree root (see Table 10.9 on page 857). Each key
in the class map is a name object denoting the name of a class. The corresponding
value is an attribute object or an array of such objects.
Note: PDF attribute classes are unrelated to the concept of a class in object-oriented
programming languages such as Java and C++. Attribute classes are strictly a mech-
anism for storing attribute information in a more compact form; they have no in-
heritance properties like those of true object-oriented classes.
The C entry in a structure element dictionary (see Table 10.10 on page 858) con-
tains a class name or an array of class names (typically accompanied by revision
numbers as well; see “Attribute Revision Numbers,” below). For each class named
in the C entry, the corresponding attribute object or objects are considered to be
attached to the given structure element, along with those identified in the
element’s A entry. If both the A and C entries are present and a given attribute is
specified by both, the one specified by the A entry takes precedence.
Attribute Revision Numbers
When an application modifies a structure element or its contents, the change may
affect the validity of attribute information attached to that structure element by
other applications. A system of revision numbers allows applications to detect
such changes and update their own attribute information accordingly, as de-
scribed in this section.
A structure element has a revision number, stored in the R entry in the structure
element dictionary (see Table 10.10 on page 858). Initially, the revision number is
0 (the default value if no R entry is present). When an application modifies the
structure element or any of its content items, it may signal the change by
incrementing the revision number.
Note: The revision number is unrelated to the generation number associated with
an indirect object (see Section 3.2.9, “Indirect Objects”).
Previous Next