code: def ReSpecTh_to_ChemKED(filename_xml, file_author='', file_author_orcid='', *, validate=False):
      tree = etree.parse(filename_xml)
      root = tree.getroot()
      properties = get_file_metadata(root)
      properties['reference'] = get_reference(root)
      properties['reference']['detail'] = (properties['reference'].get('detail', '') +
                                           'Converted from ReSpecTh XML file ' +
                                           os.path.basename(filename_xml)
                                           )
      properties.update(get_experiment_kind(root))
      properties['common-properties'] = get_common_properties(root)
      properties['common-properties']['ignition-type'] = get_ignition_type(root)
      properties['datapoints'] = get_datapoints(root)
      has_pres_rise = ('pressure-rise' in properties['common-properties'] or
                       any([True for dp in properties['datapoints'] if 'pressure-rise' in dp])
                       )
      if has_pres_rise and properties['apparatus']['kind'] == 'rapid compression machine':
          raise KeywordError('Pressure rise cannot be defined for RCM.')
      has_vol_hist = any(
          [t.get('type') == 'volume' for dp in properties['datapoints']
           for t in dp.get('time-histories', [{}])]
      )
      if has_vol_hist and properties['apparatus']['kind'] == 'shock tube':
          raise KeywordError('Volume history cannot be defined for shock tube.')
      if file_author_orcid and not file_author:
          raise KeywordError('If file_author_orcid is specified, file_author must be as well')
      if file_author:
          temp_author = {'name': file_author}
          if file_author_orcid:
              temp_author['ORCID'] = file_author_orcid
          properties['file-authors'].append(temp_author)
      for idx in range(len(properties['datapoints'])):
          for prop in properties['common-properties']:
              properties['datapoints'][idx][prop] = properties['common-properties'][prop]
      if validate:
          chemked.ChemKED(dict_input=properties)
      return properties