docs: def parse_yaml(self, y):
          '''Parse a YAML specification of a component into this object.'''
          self._reset()
          self.id = y['id']
          self.path_uri = y['pathUri']
          if 'activeConfigurationSet' in y:
              self.active_configuration_set = y['activeConfigurationSet']
          else:
              self.active_configuration_set = ''
          self.instance_name = y['instanceName']
          self.compositeType = comp_type.from_string(y['compositeType'])
          required = y['isRequired']
          if required == True or required == 'true' or required == '1':
              self.is_required = True
          else:
              self.is_required = False
          if RTS_EXT_NS_YAML + 'comment' in y:
              self.comment = y[RTS_EXT_NS_YAML + 'comment']
          self.visible = False
          if RTS_EXT_NS_YAML + 'visible' in y:
              visible = y.get(RTS_EXT_NS_YAML + 'visible')
              if visible == True or visible == 'true' or visible == 'True':
                  self.visible = True
  
          # Get the children
          if 'dataPorts' in y:
              for p in y.get('dataPorts'):
                  self._data_ports.append(DataPort().parse_yaml(p))
          if 'servicePorts' in y:
              for p in y.get('servicePorts'):
                  self._service_ports.append(ServicePort().parse_yaml(p))
          if 'configurationSets' in y:
              for p in y.get('configurationSets'):
                  self._config_sets.append(ConfigurationSet().parse_yaml(p))
          if 'executionContexts' in y:
              for p in y.get('executionContexts'):
                  self._exec_contexts.append(ExecutionContext().parse_yaml(p))
          if 'participants' in y:
              for p in y.get('participants'):
                  self._participants.append(Participant().parse_yaml(p))
  
          # Extended profile children
          if RTS_EXT_NS_YAML + 'location' in y:
              l = y[RTS_EXT_NS_YAML + 'location']
              self._location = Location().parse_yaml(l)
          if RTS_EXT_NS_YAML + 'properties' in y:
              for p in y.get(RTS_EXT_NS_YAML + 'properties'):
                  if 'value' in p:
                      value = p['value']
                  else:
                      value = None
                  self._properties[p['name']] = value
  
          return self