Property extension features
Property extension is a feature, which allows defining extension properties, i.e. properties might be added to an object instance without being defined in the instance data type definition. This includes not only adding attributes, but also references and relationships. Extension properties might be added to any object instance that contains a reference with the name __EXTENSIONS with object type SDB_Extension. Extension properties might be predefined in a property extent (SDB_Property), which may contain attribute (SDB_Attribute), reference (SDB_Reference) or relationship (SDB_Relationship) definitions.
Extension properties might be defined in the dictionary and/or in each database. Names for extension properties must be unique in each database or dictionary. Extension properties defined in a dictionary can be used in all databases.
Extension properties might be accessed by creating a Value or Property handle referring to the name of the extension property. As long as the extension property has not been created, it returns an unselected value or empty collection. When updating the data for an extension attribute, it will be created automatically when not yet existing. Extension references or relationships are created automatically, when the first instance is added to the collection.
Depending on the definition of the __EXTENSIONS reference property extensions are either managed by the application or created automatically (on demand).