===== 6.13 Descriptor Component ===== The Descriptor Component provides sufficient information to parse and verify all elements of the CAP file. It references, and therefore describes, elements in the Constant Pool Component ([[6.7_Constant Pool Component| Section 6.7, Constant Pool Component]]), Class Component ([[6.8_Class Component| Section 6.8, Class Component]]), Method Component ([[6.9_Method Component| Section 6.9, Method Component]]), and Static Field Component ([[6.10_Static Field Component| Section 6.10, Static Field Component]]). No components in the CAP file reference the Descriptor Component. The Descriptor Component is represented by the following structure: The items of the **descriptor_component** structure are as follows: **tag** The **tag** item has the value **COMPONENT_Descriptor** (11). **size** The ******size****** item indicates the number of bytes in the **descriptor_component** structure, excluding the **tag** and ******size****** items. The value of the ******size****** item must be greater than zero. **class_count** The **class_count** item represents the number of entries in the classes table. **classes[]** The **classes** item represents a table of variable-length **class_descriptor_info** structures. Each class and interface defined in this package is represented in the table. **types** The **types** item represents a **type_descriptor_info** structure. This structure lists the set of field **types** and method signatures of the fields and methods defined or referenced in this package. Those referenced are enumerated in the Constant Pool Component.