code: def parse_component_type(self, node):
          
  
          try:
              name = node.lattrib['name']
          except:
              self.raise_error('<ComponentType> must specify a name')
  
          if 'extends' in node.lattrib:
              extends = node.lattrib['extends']
          else:
              extends = None
  
          if 'description' in node.lattrib:
              description = node.lattrib['description']
          else:
              description = ''
  
          component_type = ComponentType(name, description, extends)
          self.model.add_component_type(component_type)
  
          self.current_component_type = component_type
          self.process_nested_tags(node)
          self.current_component_type = None
docs: Parses <ComponentType>
  
          @param node: Node containing the <ComponentType> element
          @type node: xml.etree.Element
  
          @raise ParseError: Raised when the component type does not have a
          name.