function _parseXML(request, log, cb) {
    if (request.post === '') {
        log.debug('request xml is missing');
        return cb(errors.MalformedXML);
    }
    return parseString(request.post, (err, result) => {
        if (err) {
            log.debug('request xml is malformed');
            return cb(errors.MalformedXML);
        }
        const versioningConf = result.VersioningConfiguration;
        const status = versioningConf.Status ?
            versioningConf.Status[0] : undefined;
        const mfaDelete = versioningConf.MfaDelete ?
            versioningConf.MfaDelete[0] : undefined;
        const validStatuses = ['Enabled', 'Suspended'];
        const validMfaDeletes = [undefined, 'Enabled', 'Disabled'];
        if (validStatuses.indexOf(status) < 0 ||
            validMfaDeletes.indexOf(mfaDelete) < 0) {
            log.debug('illegal versioning configuration');
            return cb(errors.IllegalVersioningConfigurationException);
        }
        if (versioningConf && mfaDelete === 'Enabled') {
            log.debug('mfa deletion is not implemented');
            return cb(errorInstances.NotImplemented
                .customizeDescription('MFA Deletion is not supported yet.'));
        }
        return process.nextTick(() => cb(null));
    });
}
Format of xml request:

 <VersioningConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
    <Status>VersioningState</Status>
    <MfaDelete>MfaDeleteState</MfaDelete>
 </VersioningConfiguration>

 Note that there is the header in the request if setting MfaDelete:
    x-amz-mfa: [SerialNumber] [TokenCode]