By using Secondary object types, you can define set of new properties and you can dynamically add to/remove these new properties from cmis objects.
Can I apply multiple secondary types to a cmis object?
Can I create new secondary type?
Can I update secondary type?
Can I delete secondary type?
Is all repositories support secondary types?
Not necessarily, you can check whether a repository supports secondary types or not by using ‘getTypeChildren’ API.
Can an object have more than one secondary type associated with it?
As per the specification, base secondary type (cmis:secondary) may not have property definitions associated with them. Still repositories specify property definitions to the base secondary type, so that the properties can be inherited by the subtypes of the secondary type.
In the in memory repository ‘cmis:secondary’ type is defined like below.