A descriptor class framework fully support a "start-from-class" approach,
which defines a descriptor via a set of programmable classes defined in
an object-oriented programming language. While the persistent form of a
descriptor of a deployed software component is a file, the developer of
an application using software component may view the descriptor as a set
of programmable descriptor classes. A set of classes can be generated
from a descriptor based on a set of construction rules and vise versa.
Each class can be annotated, validated and customized. The descriptor
class framework is also capable of determining the differences between
two versions of a descriptor and notifying the changes to a corresponding
class via events to a listener registered with the class.