The attributes names declaration are necessary as they are used to dissociate
the attribute that are exposed to the interfaces from the one that are used for
the implementations only.
The introspection do not allow this distinction.
A client is suitable to provide/use only the attributes returned by the
or from the static lists.
These values are also used to manage the population of attributes in an
efficient manner. It will be costly to go via the introspection to determine the
attribute name each time necessary.