code: def parse_qualifier(parser, event, node): #pylint: disable=unused-argument
      
  
      name = _get_required_attribute(node, 'NAME')
      cim_type = _get_required_attribute(node, 'TYPE')
      # TODO 2/16 KS: Why is propagated not used?
      propagated = _get_attribute(node, 'PROPAGATED')
  
      (next_event, next_node) = six.next(parser)
  
      if _is_end(next_event, next_node, 'QUALIFIER'):
          return CIMQualifier(name, None, type=cim_type)
  
      if _is_start(next_event, next_node, 'VALUE'):
          value = parse_value(parser, next_event, next_node)
      elif _is_start(next_event, next_node, 'VALUE.ARRAY'):
          #pylint: disable=redefined-variable-type
          # redefined from str to list.
          value = parse_value_array(parser, next_event, next_node)
      else:
          raise ParseError('Expecting (VALUE | VALUE.ARRAY)')
  
      result = CIMQualifier(name, tocimobj(cim_type, value))
  
      _get_end_event(parser, 'QUALIFIER')
  
      return result
docs: Parse CIM/XML QUALIFIER element and return CIMQualifier