2.2.15 ClassPart

The ClassPart block contains the actual core of a CIM class definition, as specified in [DMTF-DSP0004]. Each field MUST be located serially after the other.

 ClassPart =  ClassHeader DerivationList ClassQualifierSet 
     PropertyLookupTable [NdTable ValueTable] ClassHeap

The ClassHeader (section 2.2.16) contains information about the overall ClassPart block length and the length of various internal blocks. The DerivationList (section 2.2.17) is an encoded array that MUST contain the set of CIM class names that form the list of superclasses for the current CIM class.

The ClassQualifierSet (section 2.2.20) is the set of CIM qualifiers for the class.

The PropertyLookupTable (section 2.2.21) is a sorted dispatch table for looking up CIM property values and type information. The NdTable (section 2.2.26) indicates whether a particular CIM property has a default value that is locally defined in the current CIM class or whether the default is defined in a superclass. The ValueTable (section 2.2.29) contains values inline for simple numeric properties, or references to the values in the ClassHeap (section 2.2.37) for all other specified values in the HeapItem rule, such as arrays or strings.

NdTable and ValueTable are optional. Their inclusion is controlled by the number of properties in the PropertyLookupTable. If the PropertyLookupTable contains zero properties, NdTable and ValueTable MUST be omitted.