code: def _parse_digital_forms(self, prop=DIGITAL_FORMS):
          
  
          xpath_map = self._data_structures[prop]
  
          # Parse base digital form fields: 'name', 'content', 'decompression', 'version', 'specification'
          xpath_root = self._data_map['_digital_forms_root']
          digital_forms = parse_complex_list(self._xml_tree, xpath_root, xpath_map, prop)
  
          # Parse digital form transfer option fields: 'access_desc', 'access_instrs', 'network_resource'
          xpath_root = self._data_map['_transfer_options_root']
          transfer_opts = parse_complex_list(self._xml_tree, xpath_root, xpath_map, prop)
  
          # Combine digital forms and transfer options into a single complex struct
  
          df_len = len(digital_forms)
          to_len = len(transfer_opts)
          parsed_forms = []
  
          for idx in xrange(0, max(df_len, to_len)):
              digital_form = {}.fromkeys(_agis_definitions[prop], u'')
  
              if idx < df_len:
                  digital_form.update(i for i in digital_forms[idx].items() if i[1])
              if idx < to_len:
                  digital_form.update(i for i in transfer_opts[idx].items() if i[1])
  
              if any(digital_form.values()):
                  parsed_forms.append(digital_form)
  
          return get_default_for_complex(prop, parsed_forms)
docs: Concatenates a list of Digital Form data structures parsed from the metadata