code: def parse_property_array(parser, event, node): #pylint: disable=unused-argument
      
  
      name = _get_required_attribute(node, 'NAME')
      cim_type = _get_required_attribute(node, 'TYPE')
  
      # TODO 2/16 KS: array_size here is unused. It is valid attribute.
      array_size = _get_attribute(node, 'ARRAYSIZE')
      class_origin = _get_attribute(node, 'CLASSORIGIN')
      propagated = _get_attribute(node, 'PROPAGATED')
  
      # TODO 1/16 KS: The qualifier processing could be common.
      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.ARRAY'):
                  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.ARRAY'):
  
          value = parse_value_array(parser, next_event, next_node)
          (next_event, next_node) = six.next(parser)
  
      if not _is_end(next_event, next_node, 'PROPERTY.ARRAY'):
          raise ParseError('Expecting end PROPERTY.ARRAY')
  
      return CIMProperty(
          name,
          tocimobj(type, value),
          type=cim_type,
          class_origin=class_origin,
          propagated=propagated,
          is_array=True,
          qualifiers=dict([(x.name, x) for x in qualifiers]))
docs: Parse CIM/XML PROPERTY.ARRAY element and return CIMProperty