def METHOD_NAME(body, file=None,
            omexMetadataSchema=OmexMetadataSchema.biosimulations.value):
    ''' Get the metadata about a COMBINE/OMEX archive and its contents
    Args:
        dictionary in schema ``GetCombineArchiveMetadataFileOrUrl`` with keys
            * ``url`` whose value has schema ``Url``
              with the URL for a COMBINE/OMEX archive
            * ``omexMetadataFormat` whose value is a value of :obj:`OmexMetadataInputFormat`
        file (:obj:`werkzeug.datastructures.FileStorage`, optional): COMBINE/OMEX archive file
        omexMetadataSchema (:obj:`str`, optional): schema for validating the OMEX Metadata files
    Returns:
        :obj:`list` of ``BioSimulationsCombineArchiveLocationMetadata``
            or ``RdfTriple``: metadata about a COMBINE/OMEX archive
            and its contents
    '''
    try:
        omexMetadataInputFormat = OmexMetadataInputFormat(body.get('omexMetadataFormat', 'rdfxml'))
    except ValueError as exception:
        raise BadRequestException(title='`omexMetadataFormat` must be a recognized format.', exception=exception)
    try:
        omexMetadataSchema = OmexMetadataSchema(omexMetadataSchema)
    except ValueError as exception:
        raise BadRequestException(title='`omexMetadataSchema` must be a recognized schema.', exception=exception)
    archive_file = file
    archive_url = body.get('url', None)
    if archive_url and archive_file:
        raise BadRequestException(
            title='Only one of `file` or `url` can be used at a time.',
            instance=ValueError(),
        )
    if not archive_url and not archive_file:
        raise BadRequestException(
            title='One of `file` or `url` must be used.',
            instance=ValueError(),
        )
    # create temporary working directory
    temp_dirname = get_temp_dir()
    archive_filename = os.path.join(temp_dirname, 'archive.omex')
    # get COMBINE/OMEX archive
    if archive_file:
        archive_file.save(archive_filename)
    else:
        try:
            response = requests.get(archive_url)
            response.raise_for_status()
        except requests.exceptions.RequestException as exception:
            title = 'COMBINE/OMEX archive could not be loaded from `{}`'.format(
                archive_url)
            raise BadRequestException(
                title=title,
                instance=exception,
            )
        # save archive to local temporary file
        with open(archive_filename, 'wb') as file:
            file.write(response.content)
    # read archive
    archive_dirname = os.path.join(temp_dirname, 'archive')
    try:
        archive = CombineArchiveReader().run(archive_filename, archive_dirname)
    except Exception as exception:
        # return exception
        raise BadRequestException(
            title='`{}` is not a valid COMBINE/OMEX archive'.format(archive_url if archive_url else archive_file.filename),
            instance=exception,
        )
    config = Config(
        OMEX_METADATA_INPUT_FORMAT=omexMetadataInputFormat,
        OMEX_METADATA_SCHEMA=omexMetadataSchema,
    )
    metadata, errors, warnings = read_omex_meta_files_for_archive(archive, archive_dirname, config=config)
    shutil.rmtree(archive_dirname)
    if errors:
        raise BadRequestException(
            title='The metadata for the COMBINE/OMEX archive is not valid.',
            instance=ValueError(),
            validation_report=make_validation_report(errors, warnings, filenames=[archive_filename]),
        )
    # return response
    return metadata