Types can be simple or compound. A simple type has a single property descriptor that completely describes the type. A compound type has multiple property descriptors: a default property descriptor and a property descriptor for each type in its structure. For example, a compound type called Address has a default property descriptor and other property descriptors. Examples of these other property descriptors include StreetName to describe the simple Street type and CityCode to describe the simple CityCode type. The <type> tag defines a type as being either simple by containing only the typeDefault property descriptor or compound by containing at least one extra property descriptor apart from the typeDefault.
The type definition for a compound type that represents a business object that is a keyed collection of different typed elements must have a descriptor with an implClass value of com.ibm.btt.base.types.KCollPropertyDescriptor (or a subclass). This allows the toolkit to access elements by key. The type definition must then follow this descriptor with a descriptor for each of the elements in that collection. The type definition for a compound type that represents a business object that is an indexed collection of elements of the same type must have a descriptor with an implClass value of com.ibm.btt.base.types.ICollPropertyDescriptor (or a subclass). This allows the toolkit to access elements by position. The type definition must then follow this descriptor with a descriptor for the type of the elements contained in the collection.