Validate a list of `dict`, ensuring it has specific keys
        and no others.

        :param values: A list of `dict` to validate.
        :param keys: A list of keys to validate each `dict` against.
        :param name: Name describing the values, to show in error messages.

def _verify_dict_list(self, values, keys, name):
        '''Validate a list of `dict`, ensuring it has specific keys
        and no others.

        :param values: A list of `dict` to validate.
        :param keys: A list of keys to validate each `dict` against.
        :param name: Name describing the values, to show in error messages.
        '''
        keys = set(keys)
        name = name.title()
        for value in values:
            if not isinstance(value, Mapping):
                raise MessageError('Invalid {0} value'.format(name))
            for key in keys:
                if key not in value:
                    err = '{0} must contain "{1}"'
                    raise MessageError(err.format(name, key))
            if set(value) - keys:
                err = '{0} must contain only {1}'
                words = ['"{0}"'.format(r) for r in sorted(keys)]
                words = ' and '.join(words)
                raise MessageError(err.format(name, words))