code: def parse_property_reference(parser, event, node): #pylint: disable=unused-argument
      
  
      name = _get_required_attribute(node, 'NAME')
  
      class_origin = _get_attribute(node, 'CLASSORIGIN')
      propagated = _get_attribute(node, 'PROPAGATED')
  
      qualifiers = []
      value = None
  
      (next_event, next_node) = six.next(parser)
  
      if _is_start(next_event, next_node, 'QUALIFIER'):
  
          qualifiers.append(parse_qualifier(parser, next_event, next_node))
  
          while 1:
  
              (next_event, next_node) = six.next(parser)
  
              if _is_start(next_event, next_node, 'VALUE.REFERENCE'):
                  break
  
              if _is_start(next_event, next_node, 'QUALIFIER'):
                  qualifiers.append(
                      parse_qualifier(parser, next_event, next_node))
  
              else:
                  raise ParseError('Expecting QUALIFIER')
  
      if _is_start(next_event, next_node, 'VALUE.REFERENCE'):
  
          value = parse_value_reference(parser, next_event, next_node)
          (next_event, next_node) = six.next(parser)
  
      if not _is_end(next_event, next_node, 'PROPERTY.REFERENCE'):
          raise ParseError('Expecting end PROPERTY.REFERENCE')
  
      return CIMProperty(
          name,
          value,
          class_origin=class_origin,
          propagated=propagated,
          type='reference',
          qualifiers=dict([(x.name, x) for x in qualifiers]))
docs: Parse CIM/XML PROPERTY.REFERENCE ELEMENT and return
         CIMProperty